テキストに一致する行を印刷し、次の行を印刷してから、次の行の他のテキストと再一致するすべての操作をすべてテキストファイルでどのように実行しますか?

テキストに一致する行を印刷し、次の行を印刷してから、次の行の他のテキストと再一致するすべての操作をすべてテキストファイルでどのように実行しますか?

Tor出口ノード(TorはIPv6アドレスの明示的な選択を許可しないため、IPではない)のフィンガープリントを取得し、IPv6接続を持つTor出口ノードのリストを作成したいと思います。

Torのテキストファイルには次の行があります。

a [2602:fc05::223]:443
m zBBa795v7+KnW1qZP1pK0ZBtxRHQfhHlkJpe/Yh9ok8
s Exit Fast HSDir Running Stable V2Dir Valid

私がしたいのは、次のようなテキストファイルのすべての行を印刷することです。'['(IPv6アドレスを表します)次の行(Tor出口ノードの指紋がある行)を印刷し、テキストを含む次の行と再一致します。「やめる」(すべての出口ノードを選択してください)。上記のようにライン印刷に使用されます。

どうすればいいですか?

答え1

真珠

perl -ne '$f=1 if /\[/; print if $f; $f=0 if /Exit/' infile

アッ

awk '/\[/ { f=1 } f { print } /Exit/ { f=0 }' infile

関連情報