будьте to var which save special characters

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 Вери Муч

0
задан 31 December 2015 в 01:15

1 ответ

Это - амперсанд в сменной детали, которая похожа на порождение Вашего беспокойства. Амперсанд в сменной детали заменяется текстом, который соответствовал шаблону. Пример:

$ 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//&/\\&}/"
2
ответ дан 29 September 2019 в 17:41

Другие вопросы по тегам:

Похожие вопросы: