Вот что я обнаружил, что не имеет смысла.
Вывод cat config.h
:
define somevar foo // Sample variable
Эта версия команды работает для изменения foo на bar и сохранения комментариев:
sed -e '/somevar/s/foo/bar/' config.h
Это не работает:
sed -e '|somevar|s|foo|bar|' config.h
Дает эту ошибку:
sed: -e выражение # 1, char 1: неизвестная команда: `| '
Как ни странно, это работает:
sed -e '/somevar/s|foo|bar|' config.h
Возможно, мне не хватает части документации. Кажется очень странным иметь два разных разделителя в одной команде sed.
Ошибка или функция?