LINUX.ORG.RU

#!/bi/sh string="pepsicola" new_string="cocacola"

sed "s/$string/$new_string/g" ./file > file1

Chumka ★★★
()
Ответ на: комментарий от vnp

Человек просил первое вхождение.

awk -v s1=str1 -v s2=str2 '/s1/ && !f {sub(s1,s2);f=1;print;next} {print}'

Можно и на sed'е, но более извратно, и с передачей паметров еще повозиться надо:

sed -e '/s1/{x;/s1/!{g;s/s1/s2/;};/s1/x;}'

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

> awk -v s1=str1 -v s2=str2 '/s1/ && !f {sub(s1,s2);f=1;print;next} {print}'

Вместо `/s1/' нужно `$0 ~ s1'.

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

> sed -e '1,/строка1/s/строка1/строка2/'

Не правильно работает, если в файле более одной строки со строкой1 и одна из них первая.

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