Как искать блок XML и удалять одно и то же

Без использования awk, простоbash

while read line; do
    printf "name%s-%s\n" \
        "$(tr -dc '[:alnum:]' </dev/urandom|head -c6)" \
        "$line"
done <myfile
0
29.03.2020, 20:34
1 ответ

Используя xmlstarlet, это должно помочь правильно сформированномуxml

xmlstarlet ed -d "//configProperty[.//value[contains(string(), 'oaea_server')]]" file1

В выходных данных удален Server48

<?xml version="1.0"?>
<configGroup>
  <type>SERVER_CONFIG</type>
  <configProperty id="Server6">
    <configProperty>
      <name>Server Name</name>
      <value>oacore_server2</value>
      <itemMetadata>
        <dataType>STRING</dataType>
        <scope>READ_ONLY</scope>
      </itemMetadata>
    </configProperty>
    <configProperty>
      <name>Listen Address</name>
      <value>server.com</value>
      <itemMetadata>
        <dataType>STRING</dataType>
        <scope>READ_WRITE</scope>
      </itemMetadata>
    </configProperty>
    <configProperty>
      <name>Listen Port</name>
      <value>7251</value>
      <itemMetadata>
        <dataType>INTEGER</dataType>
        <scope>READ_WRITE</scope>
      </itemMetadata>
    </configProperty>
  </configProperty>
</configGroup>
1
19.03.2021, 02:31

Теги

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