こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Linux シェルスクリプトでの XML 読み込み

次のような xml があります。
------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" ?>
<ROOT>
<hoge>
<fuga>
<piyo>/var/log/tokyo</piyo>
<hogera>7</hogera>
<hogehoge>*.log</hogehoge>
</fuga>
<fuga>
<piyo>/var/log/osaka</piyo>
<hogera>3</hogeara>
<hogehoge>*.log</hogehoge>
</fuga>
</hoge>

<foo>
<bar>
<baz>/media/tokyo/tokyo.zip</baz>
<qux>/var/log/tokyo</qux>
<quux>7</quux>
<foobar>*.log</foobar>
</bar>
<bar>
<baz>/media/osaka/osaka.zip</baz>
<qux>/var/log/osaka</qux>
<quux>3</quux>
<foobar>*.log</foobar>
</bar>
</foo>
</ROOT>
------------------------------------------------------------------------------------------------------------------
1)要素 qux の値を取り出してパスを評価
2)パスが存在すれば要素 foobar の条件に一致したファイルを要素 baz にアーカイブする

というシェルスクリプトを作成したいのですが、良い方法が分かりません
ご教授いただければ幸いです。

投稿日時 - 2020-02-05 11:13:01

QNo.9709377

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

grep コマンドでタグにマッチする行を取り出し、sed コマンドでタグに挟まれた要素の部分以外を消し、その結果をバッククォートを使って変数に入れればあとはそれらの変数を引数にして zip コマンドを実行すればいいのでは。

投稿日時 - 2020-02-11 19:09:49

ANo.1

XMLファイルから値を取り出す部分にはxmllintコマンドを使う方法があります。
https://www.google.com/search?q=xmllint+%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88

投稿日時 - 2020-02-05 18:26:01

あなたにオススメの質問