まず、私はシェル、Java、Python、Perl、およびその他の Linux ベースのスクリプト言語に非常に慣れていません。比較的単純だと思うことをする必要がありますが、それを機能させることはできません。私は awk と xpath を使用しました (awk 出力の方が優れていますが、使いやすいとは思えません)。
まず、解析する必要がある .xml 出力を示します。
引用符
<CLIOutput>
<Data>
<Row>
<Name>PROD3_A2_LUN10</Name>
<Type>VMFS</Type>
<Accessible>Yes</Accessible>
<Hosts>esx01s112</Hosts>
</Row>
<Row>
<Name>PRIVATE_VDI_SDLC3_A2_LUN174</Name>
<Type>VMFS</Type>
<Accessible>Yes</Accessible>
<Hosts>esx02s104</Hosts>
</Row>
<Row>
<Name>datastore1</Name>
<Type>VMFS</Type>
<Accessible>Yes</Accessible>
<Hosts>esx01s100</Hosts>
</Row>
</data>
</CLIOutput>
理想的には、「名前、タイプ、アクセス可能、およびホスト」の XML 属性だけでなく、それらの内部でレポートして、必要な出力のみを送信できるようにしたいと考えています。つまり、すべての「名前」についてレポートしたいということです。 「ぴ」から始まります。これまでの私のコードの試みは次のとおりです。
* awk '$1~"^(" s ")$"{print $2}' RS=\< FS=\> s="Name" sdlcproxy1diff.xml -- shows me all "Name" items.|
* xpath datastore.xml '/CLIOutput/Data/Row/*[self::Name]/text()' datastore.xml 2>/dev/null -- shows all "Name" items, but output is horrible.
前もって感謝します!!