Управление XML-файлом с помощью sed

1

У меня есть файл Strings.xml, содержащий следующий код:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">myurl</string>
<string name="app_name">MyApp</string>
</resources>

Я хочу манипулировать значением myurl с помощью командной строки с заданным URL-адресом.

Команда, которую я использую, - это

sed s/myurl/http://192.168.1.1:8080/ strings.xml

Но это вызывает ошибку: sed: 1: "s/myurl/http://192.168....": bad flag в команде substitute: '/'

Это вызвано двумя косыми чертами (//). Любой способ передать значение команде sed?

  • 0
    Вы должны использовать подходящую утилиту для разбора XML, такую как xmlstarlet или модуль на Python или Perl.
Теги:
sed

2 ответа

3
Лучший ответ

Вы можете использовать другие разделители с sed, например ! :

sed 's!myurl!http://192.168.1.1:8080/!' strings.xml

(Уродливая) альтернатива заключается в том, чтобы избежать их:

sed 's/myurl/http:\/\/192.168.1.1:8080\//' strings.xml
  • 0
    Потрясающие. Работал! Второй. Уродливая альтернатива.
0

Используйте \ перед всеми escape-символами.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню