ShellScriptとxmllintでxmlを解析
ShellScriptド素人がxmlの中身を取り出したかったので、色々調べた
xmllintとは
xmllintとはlibxml2を使用したツールで、XMLファイルに対して以下の機能を持ったのコマンドラインツールです。
このxmllintを使って、以下のxmlを解析して値&属性値を取り出す
sample.xml <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <top> <int name="hoge" value="327">100</int> </top>
327を取り出す場合、以下のようにする
echo 'cat /top/int/@value' | xmllint --shell sample.xml | grep value= | sed 's/[^"]*"\([^"]*\)"[^"]*/\1/g'
100を取り出す場合、以下のようにする
echo 'cat /top/int' | xmllint --shell sample.xml | grep value= | sed 's/^.*<int.*>\(.*\)<\/int>.*$/\1/'
参考にしたサイト
* ShellScriptでXMLの内容を取り出す | Opentone Labs.
* sedで「ダブルクォーテーションに囲まれた文字列」を抽出する方… - 人力検索はてな