2014-10-09 15 views
6

Quindi devo essere in grado di iniettare un valore in JSON usando sed o awk (preferibilmente su una riga) e non posso installare nessuna libreria esterna per aiutarmi.Trova e sostituisci per JSON con sed o awk

Un esempio di JSON è qualcosa di simile {"version":"0.5363"}

avrei bisogno di essere in grado di iniettare un nuovo valore per la versione.

Qualsiasi aiuto sarebbe molto apprezzato.

risposta

7

Si potrebbe provare il seguente comando sed,

$ echo '{"version":"0.5363"}' | sed 's/\({"version":"\)[^"]*\("}\)/\1newvalue\2/g' 
{"version":"newvalue"} 

Nel comando sed sopra, sostituire il newvalue con valore desiderato. Aggiungi l'opzione di modifica in linea -i per salvare le modifiche apportate.

sed -i 's/regex/replacement/g' file 
+0

Questo non sembra funzionare se la versione è successiva in JSON – samdunne

+0

Nevermind. Funziona se rimuovo le parentesi. Grazie mille! – samdunne

+0

Prego .. –