シェルスクリプトを使用してXMLファイルから値を抽出する

シェルスクリプトを使用してXMLファイルから値を抽出する

filestore.xmlから抽出する必要があるファイルがあります/local/armdata/data/filestore1/local/armdata/data/filestore2

grep binariesDir filestore.xml
    <binariesDir>/local/armdata/data/filestore1</binariesDir>
    <binariesDir>/local/armdata/data/filestore2</binariesDir>

これを行う方法はありますか?

答え1

使用XMLStarlet:

xml sel -t -v '//binariesDir' filestore.xml

パッケージがインストールされているUbuntuでは、xmlstarlet次のものを使用する必要があります。

xmlstarlet sel -t -v '//binariesDir' filestore.xml

答え2

あなたはそれを使用することができますsed

sed -nre 's:^.*<binariesDir>(.*)</binariesDir>.*$:\1:p' filestore.xml

これは、binaryDir検索と<binariesDir>との間の値の抽出を処理します</binariesDir>

関連情報