我找了接連的兩行匹配特定模式,比如說包含詞「拍打」使用SED和已經注意到,我可以用這個命令有時會檢測到它:檢測連續兩行相匹配的模式sed的
sed -n 'N; /.*pat.*\n.*pat.*/p'
但如果重複項的行數不是相同的奇偶性,我認爲這是因爲我們正在搜索第1 + 2,3 + 4,5 + 6行等。如果是這種情況,這樣做的正確方法是什麼?
我找了接連的兩行匹配特定模式,比如說包含詞「拍打」使用SED和已經注意到,我可以用這個命令有時會檢測到它:檢測連續兩行相匹配的模式sed的
sed -n 'N; /.*pat.*\n.*pat.*/p'
但如果重複項的行數不是相同的奇偶性,我認爲這是因爲我們正在搜索第1 + 2,3 + 4,5 + 6行等。如果是這種情況,這樣做的正確方法是什麼?
爲什麼它需要是sed
?我可以建議awk
?
awk '{/pat/?f++:f=0} f==2' file
如果發現pat
,增加f
與1
如果找不到pat
,重置f
到0
如果f==2
打印行。
這是正確的嗎?我認爲當我們不匹配時需要別的東西。 –
是的,我看到了,將修復 – Jotne
@PalaceChan這應該做的。 – Jotne