2016-04-15 21 views
-1

Zum Beispiel habe ich mehrere Zeilen in einer Datei, und jede Zeile ist eine Zeichenfolge, wie folgt aus:Wie verwendet man regulären Ausdruck, um einen Teilzeichenfolgewert zu ersetzen?

{"a":"53124647,44398061,44398058","b":"hello","c":"ha"} 
{"b":"99","a":"44398049,44398031,44398028,10007072315,9569405558,10007072318","c":"ha"} 
... 

Wenn jede Zeile als JSON-Objekt betrachtet wird, die Länge der Wert der Schlüssel "a" in jeder Zeile ist flexibel, also wie man sed und regular expression benutzt, um das Schlüsselpaar "a" und seinen Wert mit "a":"10" zu ersetzen?

Antwort

1
$ echo '{"a":"53124647,44398061,44398058","b":"hello","c":"ha"}' | sed '[email protected]"a":"[^"]*"@"a":"10"@' 
{"a":"10","b":"hello","c":"ha"} 
2
$ echo '{"a":"53124647,44398061,44398058","b":"hello","c":"ha"} 
{"b":"99","a":"44398049,44398031,44398028,10007072315,9569405558,10007072318","c":"ha"}' | sed 's/"a":"[^"]*"/"a":"10"/g' 
{"a":"10","b":"hello","c":"ha"} 
{"b":"99","a":"10","c":"ha"} 
Verwandte Themen