У вас почти была правильная команда.Единственная проблема заключается в том, что в базовом синтаксисе sed
символ +
является литералом (эквивалентным [+]
).Цитата sed
* Приложение A Расширенные регулярные выражения :
Единственное различие между базовыми и расширенными регулярными выражениями заключается в поведении нескольких символов: ?
,+
, скобки и фигурные скобки ({}
).
[...]
c\+
становится c+
при использовании расширенных регулярных выражений.Он соответствует одному или нескольким символам c.
Чтобы включить обычное значение +
write \+
sed 's/\$\([A-Z0-9_]\+\)\b/" .. \1 .. "/g'
или использовать расширенный sed
синтаксис
sed -E 's/\$([A-Z0-9_]+)\b/" .. \1 .. "/g'