Измените несколько строк файла XML с помощью командной строки

Посмотрев текст ниже, как мне заменить несколько строк текста?

<Model500> ABC BCD CDE </Model500> <Model500> 123 234 345 </Model500> 

Выходной сигнал может быть как ниже

 <Model500> AAA BBB CCC </Model500> <Model500> 111 333 555 </Model500> 

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

One Solution collect form web for “Измените несколько строк файла XML с помощью командной строки”

Используйте подходящий инструмент xml , в shell, xmlstarlet является хорошим:

 xmlstarlet edit -L -u "//Model500[1]" -v "AAA BBB CCC" file.xml xmlstarlet edit -L -u "//Model500[2]" -v "111 333 555" file.xml cat file.xml 

Выражение //Model500[2] является выражением Xpath

ПРИМЕЧАНИЕ №1

вам нужно приложить свой XML-тег, например:

 <root> ... </root> 

для корректности XML. Надеюсь, вы отрезали файл XML для вашего вопроса.

ПРИМЕЧАНИЕ ²

Вы также можете использовать python , perl , ruby и т. Д. И подходящую библиотеку xml lib.

В perl :

 #!/usr/bin/perl use strict; use warnings; use XML::Simple; my $xml_file = 'file.xml'; my $xml = XMLin( $xml_file, KeepRoot => 1, ForceArray => 1, ); $xml->{root}->[0]->{Model500}->[0] = "AAA\nBBB\nCCC\n"; $xml->{root}->[0]->{Model500}->[1] = "111\n222\n333\n"; XMLout( $xml, KeepRoot => 1, NoAttr => 1, OutputFile => $xml_file, ); 
  • Альтернатива xmllint для проверки правильности xml
  • VIM переходит от одного тега xml к закрытию
  • Создание сценария оболочки для записи в файл XML
  • извлекать блоки текста из xml-файла с условием
  • Очистка объединенных файлов XML
  • Как заменить «& # x5c» на «/» в файле с помощью командной строки?
  • Неудачные зависимости, пытающиеся установить пакет 'libxml2'
  • Получение подстрок между разделителями несколько раз из одной строки без цикла
  • как сравнить два xml-файла с одинаковыми данными в разных строках?
  • Переупорядочить текст в каждой строке файла
  • Скрипт для изменения файла конфигурации XML
  • Linux и Unix - лучшая ОС в мире.