相关疑难解决方法(0)

grep 3 最近发生的事件和发生的一些行

我有一个文件,如:

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)

还有其他方法吗?可能我还可以指定出现的次数,而不仅仅是 …

unix perl grep tail

2
推荐指数
1
解决办法
232
查看次数

标签 统计

grep ×1

perl ×1

tail ×1

unix ×1