У меня есть файл ethernet, содержащий несколько строк. Я сохранил одну из этих строк как переменную под названием old_line. Содержимое этой переменной выглядит следующим образом:Sed: заменить строковую переменную переменной строки
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="2r:11:89:89:9g:ah", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
Я создал вторую переменную NEW_LINE, который похож на old_line, но с некоторыми изменениями в тексте.
Я хочу, чтобы заменить содержимое old_line с содержанием NEW_LINE с использованием СЭД. До сих пор у меня есть следующий, но он не работает:
sed -i "s/${old_line}/${new_line}/g" ethernet
Попробуйте без {} вокруг переменных? Также проверьте http://stackoverflow.com/questions/8938571/find-and-replace-variables-containing-non-escaped-characters-with-sed – trainoasis
Спасибо, но, к сожалению, это тоже не сработает. – user2835098