Заменить текст с помощью sed - PullRequest
1 голос
/ 27 сентября 2011

У меня возникли проблемы при замене даты изменения в моем скрипте с помощью sed.

Я получаю дату последнего изменения следующим образом:

olddate=`grep -m1 "Built " script.sh | cut -c 22-29`

Я получаю текущую дату с:

newdate=`date +%d/%m/%y`

В основном я хочу заменить старую дату новой датой

sed -i "" "s/$olddate/$newdate/g" script.sh

Но это не работает, так как дата содержит косые черты.Я оглянулся вокруг и не могу найти способ избежать их должным образом.Любая помощь будет оценена.

Ответы [ 3 ]

6 голосов
/ 27 сентября 2011

Вы можете использовать разделители, отличные от косой черты, например "; "

sed -i "" "s;$olddate;$newdate;g" script.sh
3 голосов
/ 27 сентября 2011

Используйте вместо /!

sed -i "" "s,$olddate,$newdate,g" script.sh

На самом деле вы можете использовать практически любой символ в качестве разделителя.

2 голосов
/ 27 сентября 2011

использование sed "s#$olddate#$newdate#g"

, которое должно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...