2010-08-06 8 views
0
BEGIN { 
    q = "\"" 
    FS = OFS = q ", " q 
} 
{ 
    split($1, arr, ": " q) 
    for(i in arr) { 
     if(arr[i] == "name") { 
      gsub(q, "'", arr[i+1]) 
      # print arr[1] ": " q arr[2], $2, $3 
     } 
    } 
} 

J'ai un fichier JSON, certaines données comme ceci:Remplacer des guillemets doubles guillemets simples avec awk

{"last_modified": {"type": "/type/datetime", "value": "2008-04-01T03:28:50.625462"}, "type": {"key": "/type/author"}, "name": "National Research Council. Committee on the Scientific and Technologic Base of Puerto Rico"s Economy.", "key": "/authors/OL2108538A", "revision": 1} 

La valeur du nom ont une double citation, je veux seulement remplacer le guillemet à simple citation, pas la double citation, s'il vous plaît dites-moi comment y remédier?

+0

Il est probablement préférable d'utiliser un analyseur JSON approprié en Python ou en Perl (ou en autonome). –

+0

duplicata possible de [besoin d'aide! sed ou awk comment remplacer le texte] (http://stackoverflow.com/questions/3422103/need-help-sed-or-awk-how-to-replace-text) –

Répondre

0
awk '{for(i=1;i<=NF;i++) if($i~/name/){ gsub("\042","\047",$(i+1)) }}1' file 
Questions connexes