2014-10-09 31 views
6

Also muss ich in der Lage sein, einen Wert in JSON mit sed oder awk (vorzugsweise in einer Zeile) zu injizieren und ich kann keine externen Bibliotheken installieren, um mir zu helfen.Suchen und Ersetzen für JSON mit sed oder awk

Ein Beispiel für die json ist so etwas wie {"version":"0.5363"}

ich in der Lage sein würde, einen neuen Wert für die Version zu injizieren.

Jede Hilfe würde sehr geschätzt werden.

Antwort

7

Sie könnten den unten sed Befehl versuchen,

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

In dem obigen sed Kommando, ersetzen Sie den newvalue mit Ihnen gewünschten Wert. Fügen Sie die Inline-Bearbeitungsoption -i hinzu, um die vorgenommenen Änderungen zu speichern.

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

scheinen Dies gilt nicht, wenn Version zu arbeiten nächste innerhalb JSON – samdunne

+0

Nevermind ist. Es funktioniert, wenn ich die Klammern entferne. Vielen Dank! – samdunne

+0

Gern geschehen .. –