XMLから属性値を抽出する

XMLから属性値を抽出する

強い打撃を使用し、

文書:

<?xml version="1.0" encoding="UTF-8"?>
<blah>
    <blah1 path="er" name="andy" remote="origin" branch="master" tag="true" />
    <blah1 path="er/er1" name="Roger" remote="origin" branch="childbranch" tag="true" />
    <blah1 path="er/er2" name="Steven" remote="origin" branch="master" tag="true" />

</blah>

私は以下を試しました:

grep -i 'name="andy" remote="origin" branch=".*\"' <filename>

ただし、行全体を返します。

<blah1 path="er" name="andy" remote="origin" branch="master" tag="true" />

以下に基づいて行を一致させたい。

name="andy"

私はそれが戻ってほしいと思います:

master

ベストアンサー1

XMLパーサーを使用してXMLデータを解析します。そしてこれは単にXPathの練習になります。

$ branch=$(xmlstarlet sel -t -v '//blah1[@name="andy"]/@branch' file.xml)
$ echo $branch
master

おすすめ記事