Ich benutze sed, um den Wert eines Schlüssels zu ersetzen, aber sed scheint nicht die Regex richtig zu entsprechen. Die JSON Ich habe ähnelt dies,Sed passt nicht zu einem Regex-Muster, es sollte passen
...
"env": {
"emailBxUrl": "placeholder"
},
...
und der sed Befehl, den ich habe, ist dies,
sed -i "s/^(\ |\t)+\"emailBxUrl\"\:.*$/test/gm file1.json
Nach dem Ausführen des Befehls die Datei nicht ändern. Ich habe die Regex bei regexr, und es fand die „emailBxUrl ...“ Linie ganz gut, wie unten
So gezeigt, was ich für den sed Befehl fehle nicht wie vorgesehen funktionieren?
Online-Sites werden nicht für sed arbeiten weil sed nur BRE/ERE-Flavor von Regex unterstützt ... siehe https://unix.stackexchange.com/questions/119905/why-does-my-regular-expression-work-in-x-but-not-in- y ... das könnte für GNU sed 'sed' s/^ [\ t] \ + "emailBxUrl" funktionieren:. */test/''aber du solltest wirklich regex an erster Stelle für json vermeiden. benutze json parser like jq oder python mit json-modul, etc siehe auch http://mywiki.wooledge.org/Quotes – Sundeep
Sie müssen -E s sed command –
post den erweiterten json hinzufügen Inhalt – RomanPerekhrest