LINUX.ORG.RU

Замена с sed


0

0

Пусть есть две переменных вида:
STR1="/dir1/dir2/dir3/file"
STR2="/dir1/dir2"
STR3="/dir3/dir4"
Надо заменить в строке STR1 все строки типа STR2 на строки STR3.
Хотел сделать типа echo SRT1 | sed s/^$STR2/$STR3/ , возникает проблемма из-за /.



anonymous

Ответ на: комментарий от hooj

> а экранирование не спасет отца русской демократии? \/

А вот как это сделать. Т. е. мне это надо это в скрипте и соответсвенно STR1, STR2, STR3 могут быть разными. В голову лезет использовать перед sed tr, но помоему это не то.

> echo "mahmud abbas" | sed -e s-a-A-g mAhmud AbbAs

А вот это это почти то что надо, только если в STR2 или STR3 есть символ "-", то не работает .

anonymous
()
Ответ на: комментарий от sdio

> echo "$STR1"|sed "s|$STR2|$STR3|"

~ touch '|||' && ls -al '|||'
-rw-r--r--    1 vasia     vasia            0 Jan 29 17:28 |||

Так что может быть имя и с |.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.