我有一个文件,如:
exception: anythinggggg...
exception: anythinggggg...
abchdhjsdhsd
ygsuhesnkc
exception: anythingggg...
exception: anything...
..
..
Run Code Online (Sandbox Code Playgroud)
我想 grep 最近出现的 2 次异常关键字以及它之前的 3 行和之后的 3 行。
我正在使用类似的东西
grep -C 3 exception | tail -12
Run Code Online (Sandbox Code Playgroud)
我在这里使用 tail -12 因为我想要每次出现 6 行和最近出现 2 行。当异常的发生彼此相距很远时,这可以正常工作,但是如果说两次发生都是连续的,则会给我带来无用的线条。
abdgjsd
abdgjsd
abdgjsd
abdgjsd
abdgjsd
abdgjsd
abdgjsd
abdgjsd
exception
exception
exception
abcd
Run Code Online (Sandbox Code Playgroud)
在上述情况下,它给了我
abdgjsd
abdgjsd
abdgjsd
exception
exception
exception
abcd
Run Code Online (Sandbox Code Playgroud)
然而,我想要的是
abdgjsd
exception
exception -----------------> OUTPUT FOR FIRST OCCURRENCE
exception
abcd
abdgjsd
abdgjsd
exception-----------------> OUTPUT FOR SECOND OCCURRENCE
exception
exception
abcd
Run Code Online (Sandbox Code Playgroud)
还有其他方法吗?可能我还可以指定出现的次数,而不仅仅是 …