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;}
通常 sed 列印
pattern space
處理結束時的任何內容。該-n
選項禁用此列印,因此只有明確的列印請求才會產生輸出。程序
/blah/{n;p;}
說“如果行匹配blah
,則執行n
andp
命令”。n
說“將下一行讀入pattern space
”並且p
說“列印pattern space
”。請注意,
grep -A1 "blah" | grep -v "blah"
對於連續行包含blah
. 該grep
對永遠不會輸出帶有 的行blah
,但 sed 可以。grep 對的輸出也可以包含==
第一個 grep 引入以劃分塊。