найти и заменить с помощью фигурных скобок

Я пытаюсь использовать эту команду:

sed -i 's#\{test1\}#test2#' /example/myfile.txt

Для замены экземпляров{test1} с участиемtest2.

Я получаю ошибку:

sed: -e expression #1, char 17: Invalid preceding regular expression

Правильно ли я избегаю фигурных скобок?

 atdev09 февр. 2012 г., 06:26
Хм .. Я снял заднюю косую черту, и, кажется, работает нормально.

Ответы на вопрос(2)

sedрегулярные выражения по умолчанию - BRE, где\{ а также\} указать выражение диапазона. посколькуtest1 не диапазон, ваш BRE неверен.

Чтобы исправить это, вы можете либо удалить обратную косую черту (фигурные скобки не являются особенными в BRE), либо оставить ее прежней, и указать sed использовать ERE (-r флаг с GNU sed,-E флаг с BSD / MacOSX sed).

 ericsoco29 дек. 2016 г., 21:37
TIL BRE ERE. BRE довольно удобны вsed Мир.
Решение Вопроса
sed -i 's#{test1}#test2#' /example/myfile.txt

{}

Ваш ответ на вопрос