我有下面的XML格式需要幫助的shell腳本查找和XML文件替換值
<object class="Class A">
<directory>someString1</directory>
<attr>
<name>length</name>
<value>6</value>
</attr>
<attr>
<name>parent</name>
<value>1</value>
</attr>
<attr>
<name>Status</name>
<value>1</value>
</attr>
<attr>
<name>className</name>
<value>Class A</value>
</attr>
<attr>
<name>Instance</name>
<value>InstanceValue</value>
</attr>
</object>
...
<object class="Class D">
<directory>someString4</directory>
<attr>
<name>length</name>
<value>8</value>
</attr>
<attr>
<name>parent</name>
<value>1</value>
</attr>
<attr>
<name>Status</name>
<value>1</value>
</attr>
<attr>
<name>className</name>
<value>Class D</value>
</attr>
<attr>
<name>Instance</name>
<value></value>
</attr>
</object>
....
我只需要找到特定的d類對象,並找到實例值是否該對象是空的,如果空填補了作爲論據提供的一些價值。請注意,XML文件中可能有多個對象,並且XML標記名稱和值有相當多的重複。此外,我只需要在suse Linux上使用shell腳本執行此操作。
我是shell腳本編程和SED的新手。我嘗試了我的級別以找到現有的問題和答案在stackoverflow,但coulnd't找到一個相關的。 任何幫助是高度讚賞。
我建議使用XML/HTML解析器(xmlstarlet,xmllint ... )。 – Cyrus
請發佈一個有效的xml文件和你想要的輸出樣本到你的問題。 – Cyrus
當您說「我需要使用shell腳本執行」時,您能澄清一下您有什麼限制嗎?通常這意味着「我不能安裝任何額外的軟件」,但有時它意味着「perl和python不允許」,甚至「只有shell和簡單的命令,如grep和sed以及他們在課堂上教過我們的其他任何東西都是允許的」。 –