Друзья!
По значениям переменных в
sed прочёл
здесь
Вот пусть
sed найдёт строку в файле и удалит её. Вот строка (со слэшем. обращаю внимание):
А вот пустой файл, лишь бы был:
А теперь удалим эту строку из файла
$MYSTR
Shell
$ sed "/^${MYSTR}$/d" test
$
Вывод предсказуем, файл-то пустой. А теперь заменим в переменной всего одну букву (
r на
d и повторим код):
Shell
$ MYSTR="p/d"
$ > test
$ sed "/^${MYSTR}$/d" test
sed: -e выражение #1, символ 6: лишние символы после команды
$
Я могу только предполагать, почему так. Наверное,
MYSTR меняется на
p/d,
sed видит
/d, а потом видит второй
/d и происходит коллапс. И как этого избежать, я не знаю. Прямой слэш в значении переменной НЕОБХОДИМ. Спасибо, кто откликнется.
Я просто читаю маны.