@edlirius
Инженер телекоммуникационной компании

Как в sed заменить строку c двойными кавычками и переменной?

Здравствуйте, уважаемые знатоки.
Требуется с помощью sed заменить строку да ещё и с переменной, который час бился не смог, просто не меняет :)

Код из себя представляет что-то такое:
#!/bin/bash
IP=`wget -qO- someurl.com`
GMT=`wget -qO- someurl.com?$IP`
OLD="TimeZone="600""
REP="TimeZone="$GMT""
sed -i "s/$OLD/$REP/" test.txt


Попытка была и такая:
sed -i "s|TimeZone=\x22600\x22|TimeZone=\x22$GMT\x22|g" test.txt


Содержание test.txt:
<TimeConfig TimeMode="NTP" TimeZone="600">

Пытался хотя бы так, но вообще нужно всегда менять значение TimeZone= даже если оно не 600, а любое

Выручите, пожалуйста)
  • Вопрос задан
  • 821 просмотр
Решения вопроса 2
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
#!/bin/bash
IP=$(wget -qO- someurl.com)
GMT=(wget -qO- someurl.com?$IP)
OLD="TimeZone=\"600\""
REP="TimeZone=\"$GMT\""
sed -i "s/$OLD/$REP/" test.txt

sed  "s/TimeZone=\"[^\"]*\"/TimeZone=\"$GMT\"/g" test.txt
Ответ написан
Комментировать
karabanov
@karabanov Куратор тега Linux
Системный администратор
sed -i "s|TimeZone=\"600\"|TimeZone=\"${GMT}\"|g" test.txt
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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