ich eine Textdatei mit dem Namen package.json habe, die die folgende snippit enthält:bash sed Text mit regex ersetzen
"single-instance":true,
"user-agent": "somename",
"PORT": 2000,
Ich brauche ‚somename‘ mit einem anderen Wert zu ersetzen (in diesem Fall xxx) und ‚somename 'ist nicht festgelegt, es könnte alles sein.
Also habe ich versucht, mit der folgenden Regex, aber es aktualisiert die Datei nicht.
Ich habe den Regex-Ausdruck auf Regex101 getestet und es scheint gültig zu sein, also denke ich, es muss etwas mit der sed-Syntax zu tun haben ??
sed -i 's/"user-agent": "(.*)"/xxx/' package.json
Irgendwelche Vorschläge, wo ich falsch liege?
zur Kenntnis, dass sed standardmäßig BRE verwendet, wo '()' nicht Meta-Zeichen ... Sie '\ (\)' oder aktivieren verwenden müssen ERE mit seds "-E" oder "-r" Option .. siehe http://www.regular-expressions.info/posix.html für BRE/ERE – Sundeep