我正在寻找两个连续的匹配某个模式的行,比如用sed包含单词'pat',并注意到我有时能用这个命令检测到它:
sed -n 'N; /.*pat.*\n.*pat.*/p'
Run Code Online (Sandbox Code Playgroud)
但如果重复项的行号不是相同的奇偶校验,则此命令失败,我认为是因为我们正在搜索第1 + 2,3 + 4,5 + 6行等.如果是这种情况,那将是什么这样做的正确方法?
为什么需要sed?我可以建议awk吗?
awk '{/pat/?f++:f=0} f==2' file
Run Code Online (Sandbox Code Playgroud)
如果pat找到,则增加f,1
如果pat未找到,则重置f为0
如果f==2打印该行.