1
我使用下面的命令来匹配文件以下行:grep的下一行只有上面两行匹配字符。连续
cat file.txt | grep -A 1 'match' > output.txt
这让我以后“匹配”得到线被找到在下面的文件中:
match
random text line 1
match
match
match
random text line 2
match
random text line 3
match
match
random text line 4
match
random text line 5
match
random text line 6
match
random text line 7
match
random text line 8
match
match
random text line 9
但是,我只需要返回2个或更多连续的“匹配”行后面的行。在这种情况下,输出将是:
random text line 2
random text line 4
random text line 9
我一直在使用的grep -A 2 'match' | grep -A 1 'match'
组合尝试,但它不工作,因为它是多余的。如果只有两条连续的线,我就会陷入困境。如果它更高效,我愿意使用awk或sed进行匹配。任何方向将不胜感激。
感谢您的解释了。这很好。我真的需要更多地使用awk。看起来像很酷(和准确)的事情:-) – DomainsFeatured
实际上,当线顺序匹配时,它会返回不正确的“随机文本行”,随机文本行11,匹配,随机文本行12,匹配,随机文本行13'。在那种情况下,第13行将被输出(尽管它只有一个“匹配”,而不是两个)。我可以编辑你的答案并提供失败的例子吗? – DomainsFeatured
这是复制它的一种方法。但是,我得到的直线上方只有1'匹配',而不是连续两条'匹配'线: -/ – DomainsFeatured