Sed для замены шаблона

Я хотел бы заменить шаблон, который состоят из var, окруженного () с sed . Успешная следующая команда:

echo "This is the pattern : th_now(5, almost done!" | sed "s/th_now($var/th_now_$var/g"

Но когда я пытаюсь использовать правильный шаблон, который меня интересует, он терпит неудачу:

echo "This is the pattern : th_now(5), almost done!" | sed "s/th_now($var)/th_now_$var/g"

Есть способ решить эту проблему? спасибо.

2
задан 27 May 2021 в 17:31

1 ответ

Если я правильно понимаю, я думаю, что это то, что вы ищете:

$ echo "This is the pattern : th_now(5), almost done!" | sed 's/th_now(\([^()]*\))/th_now_\1/'
This is the pattern : th_now_5, almost done!

Или:

$ echo "This is the pattern : th_now(5), almost done!" | sed 's/th_now(\([[:digit:]]*\))/th_now_\1/'
This is the pattern : th_now_5, almost done!
1
ответ дан 28 July 2021 в 11:35

Другие вопросы по тегам:

Похожие вопросы: