一致する行次の行のみを表示するには、sedを使用してください。

一致する行次の行のみを表示するには、sedを使用してください。

https://stackoverflow.com/a/7451478/15603477

わかりました。grep -A1 'blah' logfile | grep -v "blah"

sed -n '/blah/{n;p;}' logfile
しかし、これまで手動のsedコマンドラインオプションページを確認したかどうかはわかりません。https://www.gnu.org/software/sed/manual/html_node/Command_002dLine-Options.html。唯一の-n方法は静かにあることです。明らかに/blah/パターンを参照し/blah/て理解しにくい部分は{n;p;}

ベストアンサー1

pattern space通常、sedは処理の終わりに何でも印刷します。この-nオプションはこの印刷を無効にするため、明示的な印刷要求のみが出力を生成します。

プログラムは、/blah/{n;p;}「行が一致したらコマンドをblah実行してください」と言います。 「次の行を読む」と言い、「印刷」と言います。npnpattern spaceppattern space

grep -A1 "blah" | grep -v "blah"このsedプログラムは、連続した行が含まれているときに異なる結果を生成することに注意してくださいblah。ペアgrepは行を出力しませんが、blahsedは出力します。 grepペアの出力には、==最初のgrepがチャンクに分割するために導入したものも含まれます。

おすすめ記事