как редактировать сложный XML-файл с помощью SED - PullRequest
0 голосов
/ 30 мая 2018

это структура XML-файла:

  <test.file>
    <set name="parameter1" serializeAs="String">
      <value>True</value>
    </set>
    <set name="parameter2" serializeAs="String">
      <value>True</value>
    </set>
  </test.file>

Я хочу изменить значение с True на False для Parameter2, когда я использую эту команду: xmlstarlet ed -u //test.\file/set/value -v False filename Обновляет оба значения с True на False.Как я могу контролировать редактирование значения только для name = "parameter2"?

Спасибо!

1 Ответ

0 голосов
/ 30 мая 2018

РЕДАКТИРОВАТЬ: Поскольку OP просит внести изменения в значение конкретного тега, поэтому изменил код в соответствии с ним.

xmlstarlet ed -u "//test.file/set[@name='parameter2']/value" -v "false"  Input_file.xml

После *Здесь вам может помочь команда 1009 *.

xmlstarlet ed -u "/test.file/set/value" -v "false"  Input_file.xml

Чтобы выполнить обновление на месте в самом файле xml, используйте следующее.

xmlstarlet ed -L -u  "/test.file/set/value" -v "false"  Input_file.xml
...