xmlファイルがあって、簡単に必要な情報を引き出したい。
コマンドレベルで簡単に引き出せるのがこの xmllint 

例えば、TORQUE pbsにて<jobid>が123の実行ノード(<exec_host>)を切り出してみる。

「qstat -x <jobid>」でXML形式で詳細な出力が得られる。これをファイル(123.xml)に落として、
それからこの「xmlling」を使って実行ノード(<exec_host>)部分を切り出してみる


#code(nonumber){{
[illya@c ~]$ qstat -x 123 > 123.xml

[illya@c ~]$ xmllint --shell 123.xml        <-- 確認: 手動で拾ってみる
/ > 
/ > cat /Data/Job/exec_host
 -------
<exec_host>s.sybyl.local/0+s.sybyl.local/1</exec_host>
/ >

[illya@c ~]$ echo "cat /Data/Job/exec_host" |  xmllint --shell xml | grep exec_host | sed -e 's/<[^>]*>//g'
s.sybyl.local/0+s.sybyl.local/1

[illya@c ~]$
[illya@c ~]$ echo "cat /Data/Job/exec_host" |  xmllint --shell xml | grep exec_host | sed -e 's/<[^>]*>//g' | sed -e 's/\+/\n/g'
[illya@c ~]$ echo "cat /Data/Job/exec_host" |  xmllint --shell xml | grep exec_host | \
sed -e 's/<[^>]*>//g' | sed -e 's/\+/\n/g'
s.sybyl.local/0
s.sybyl.local/1

[illya@c ~]$ echo "cat /Data/Job/exec_host" |  xmllint --shell xml | grep exec_host | \
sed -e 's/<[^>]*>//g' | sed -e 's/\/[0-9]*//g' | sed -e 's/\+/\n/g'
s.sybyl.local
s.sybyl.local

[illya@c ~]$
}}
1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS