У меня есть текстовый файл с именем package.json, который содержит следующую Snippit:Баш SED замена текста с регулярным выражением
"single-instance":true,
"user-agent": "somename",
"PORT": 2000,
Мне нужно заменить «SomeName» с другим значением (в данном случае ххх) и «SomeName 'не фиксирован, это может быть что угодно.
Так что я попытался использовать следующее регулярное выражение, однако оно не обновляет файл.
Я проверил выражение регулярного выражения на regex101, и он кажется действительным, поэтому я думаю, что это должно быть что-то делать с синтаксисом sed ??
sed -i 's/"user-agent": "(.*)"/xxx/' package.json
Любые предложения о том, куда я иду не так?
к сведению, что по умолчанию SED использует BRE, где '()' не метасимволы ... вы должны использовать '\ (\)' или активировать ERE с параметром '-E' или' -r' от sed. См. Http://www.regular-expressions.info/posix.html для BRE/ERE – Sundeep