有沒有辦法使用 grep 輸出找到匹配項後落在特定行數的行?例如我想輸出有匹配的行、匹配後的第8行、匹配後的第17行。這可能嗎?
我知道我可以使用 輸出接下來的 17 行grep -A17
,但我想知道是否可以獲得有用的行而不需要中間的所有內容。
答案1
嘗試透過管道連接到awk blah | grep stuff -A17 | awk "NR==1{print} NR==8{print} NR==17{print;exit}"
這將僅輸出第 1、8 和 17 行。
如果要包含重複模式,可以使用 mod (%) 運算符
awk "(NR-1)%17 == 0{print} (NR-8)%17 == 0{print} (NR-17)%17 == 0{print}"