Hello I м tring to использовал
sed -i -e s/"$before"/"$after"/g ~/.A/$sfi
to substitube an line on в file.A from $before to $after but bouth изменчивые contain characters и and I think is it the вызвал of not working someone хан give an solution for this please? Thanks Вери Муч
Это - амперсанд в сменной детали, которая похожа на порождение Вашего беспокойства. Амперсанд в сменной детали заменяется текстом, который соответствовал шаблону. Пример:
$ before="time&again"
$ after="to&fro"
$ sed "s/$before/$after/" <<END
> hello
> world time&again !
> END
hello
world totime&againfro !
Так, подобранный текст time&again
заменяется to&fro
, кроме &
между "к", и "fro" самостоятельно заменяется подобранным текстом.
решение состоит в том, чтобы выйти из амперсанда в заменяющей стороне. Используя замена параметра удара даст желаемые результаты:
sed "s/$before/${after//&/\\&}/"