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

Ответ на: Re: Замена с sed от hooj

Re: Замена с sed

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

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

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

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

anonymous ()

Re: Замена с sed

${STR1/$STR2/$STR3}

?

uj2 ★★★ ()
Ответ на: Re: Замена с sed от sdio

Re: Замена с sed

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

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

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

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