次のXMLデータでgrep / sedを試しています。
<record
address="11.800.96.10" name="_ldap._tcp.gc._msdcs.example.com" port="3268" target="aws-sit2.example.com" type="SRV"/>
次の情報を次の形式で検索したいと思います。
アドレス値、名前値、ポート値
各レコードには、レコード値の行を抽出した後にキャリッジリターン文字があります。どうやってこれを達成できますか?
答え1
XMLを解析するには、XMLパーサーを使用してください。xmlstarlet!
xmlstarlet sel -t -m '//record' \
-v '@address' -o " " \
-v '@name' -o " " \
-v '@port' -n \
xmlfile
-o
必要に応じて区切り記号を変更します。または-n
改行の場合。
答え2
awk '{print $1", "$2", "$3}' | sed -e 's/[=]/ /g' -e 's/["]//g'
これはうまくいきます