【发布时间】:2017-11-13 11:32:36
【问题描述】:
我有一个类似的文件:
exception: anythinggggg...
exception: anythinggggg...
abchdhjsdhsd
ygsuhesnkc
exception: anythingggg...
exception: anything...
..
..
我想 grep 最近 2 次出现的异常关键字以及它之前的 3 行和之后的 3 行。
我正在使用类似的东西
grep -C 3 exception | tail -12
我在这里使用 tail -12,因为我希望每次出现 6 行,最近出现 2 行。当异常的发生彼此相距很远时,这可以正常工作,但是如果说两次发生都是连续的,这会给我带来无用的行。
abdgjsd
abdgjsd
abdgjsd
abdgjsd
abdgjsd
abdgjsd
abdgjsd
abdgjsd
exception
exception
exception
abcd
在上述情况下,它给了我
abdgjsd
abdgjsd
abdgjsd
exception
exception
exception
abcd
然而,我想要的是
abdgjsd
exception
exception -----------------> OUTPUT FOR FIRST OCCURRENCE
exception
abcd
abdgjsd
abdgjsd
exception-----------------> OUTPUT FOR SECOND OCCURRENCE
exception
exception
abcd
还有其他方法吗?可能我还可以指定出现的次数,而不仅仅是 grep 行和尾随它的一些输出。
【问题讨论】:
-
请在您的问题中添加示例输入和所需的输出示例输入。
-
问题中已经指定了..