xmlファイルがあって、簡単に必要な情報を引き出したい。
コマンドレベルで簡単に引き出せるのがこの xmllint
例えば、TORQUE pbsにて<jobid>が123の実行ノード(<exec_host>)を切り出してみる。
「qstat -x <jobid>」でXML形式で詳細な出力が得られる。これをファイル(123.xml)に落として、
それからこの「xmlling」を使って実行ノード(<exec_host>)部分を切り出してみる
[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'
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 ~]$