ファイル内の特定のタグから文字列値を取得する

ファイル内の特定のタグから文字列値を取得する

タグで区切られたメッセージを含む大容量ファイルがあります<>

完全なタグ(値を含む)を取得する必要があります。以下の例をご覧ください。

<tvd:HostProductListStatus>000</tvd:HostProductListStatus><tvd:BeefProductListStatus>000</tvd:BeefProductListStatus><tvd:CustomerBranding>CC</tvd:CustomerBranding><tvd:InquiryAllowed>true</tvd:InquiryAllowed>

ただ持ってきて表示すればいいですただ次のタグ: ファイルが複数回表示されるかどうかに関係なく、ファイルの値:

<tvd:BeefProductListStatus>000</tvd:BeefProductListStatus>

これを行うコマンドは何ですか?

ベストアンサー1

入力と出力を公開すると仮定すると、GNU grepを使用して次のファイルを使用して実行できますinput

<input grep '<tvd:BeefProductListStatus>[^<]*</tvd:BeefProductListStatus>' -o -m1 \
| head -n1

grep -o一致する部分のみを印刷する必要があり、同じ行で複数のインスタンスが一致するのを防ぎ、[^<]*最初の一致行の後に停止する必要があります。同じ行にラベル付けされたデータの2つのインスタンスがある場合は、grepはそれぞれを出力するため、最初の一致だけに切り捨てる必要があります。<tvd:BeefProductListStatus>-m1head -n1

おすすめ記事