2013-09-19 2 views
2

Я пытаюсь добавить некоторый текст (путь) в конце линии, которая обнаруживается с помощью SED команды:Использование переменных в SED команды

var="/folder1/folder2/folder3" 

sed -i "/Begins with this text/s/$/$var/" filename 

Я знаю, что двойные кавычки необходимы для используйте переменные в команде sed, но если я воспользуюсь приведенной выше командой, это даст мне сообщение об ошибке:

expresssion #1, character 23: unknown option to `s 

Что я делаю неправильно?

+2

Это работает для меня. Есть ли '/' в фактическом значении '$ var'? – Barmar

+0

Да, я фактически сохраняю путь в переменной, например '/ folder/folder2/folder3' – Ozkan

ответ

5

Измените разделитель в команде substitute на то, что не появится в $var, например.

sed -i "/Begins with this text/s|$|$var|" filename 

или избежать косых черт в $var:

var="\/folder1\/folder2\/folder3" 
Смежные вопросы