Linux シェル スクリプト sed は、タグのペアでデータを受け取ります

目次

問題の背景

アイデア分析

解決


問題の背景

Linuxでは、テキストファイル内の特定のデータを特定する際、タグで挟むのが一般的ですが、シェルスクリプトを使用して抽出したい場合はどうすればよいでしょうか。

アイデア分析

sed を使用して特定のタグ間のデータ行を抽出する

テキストの例:

鬼ごっこ:

100

鬼ごっこ:

これはtag:タグで挟まれたペアのデータなので、データ100を抽出する必要があります。

このテキスト ファイルの名前が test.inp の場合、抽出スクリプトの例は次のようになります。

解決

cat test.inp | sed -n '/tag:/,/tag:/p'

ただし、このような場合はタグも抽出しますので、データのみが必要な場合は、提案されたコンテンツの最初と最後の 2 行を削除するだけで済みます。

cat test.inp | sed -n '/tag:/,/tag:/p' | awk 'NR>2{print line}{line=$0}' >result.out

この方法は、ラベルのペアに挟まれたデータ行を抽出するのに適しています。

おすすめ

転載: blog.csdn.net/qq_35902025/article/details/129945218