Ответ 1
sed -i 's#{test1}#test2#' /example/myfile.txt
Вам не нужно бежать {}
Я пытаюсь использовать эту команду:
sed -i 's#\{test1\}#test2#' /example/myfile.txt
Чтобы заменить экземпляры {test1}
на test2
.
Я получаю сообщение об ошибке:
sed: -e expression #1, char 17: Invalid preceding regular expression
Я не уверен, что вы избегаете фигурных скобок?
sed -i 's#{test1}#test2#' /example/myfile.txt
Вам не нужно бежать {}
Вы не избегаете фигурных скобок. В sed
стандартными регулярными выражениями являются BRE, где \{
и \}
указывают выражение диапазона. Поскольку test1
не является диапазоном, ваш BRE неверен.
Чтобы исправить это, вы можете либо отбросить обратную косую черту (привязки не являются особыми в BRE), либо оставить ее одинаковой, и сказать sed использовать ERE (флаг -r
с флагом GNU sed, -E
с BSD/MacOSX SED).