sed 匹配后打印 N 行

sed print N lines after match

我有一个包含这些行的文件:

some junk
in here

log number 1
line1, data, here
line2,data,here
line3,data,here
and so on

some other
junk

log number 2
line one, some,data
line two, some,data
line three, blablabla

我想在 n-th 匹配 log number ... 行之后匹配并打印大约一百行。 有效,但我不想在我的 sed 命令中输入 100 Ns。

另外 /log.*\n(.*\n){2}/gm(匹配后打印 2 行)在 regex101 上有效,但在我的终端上无效(sed 与 \n 不匹配)。

我使用 arch linux 和 GNU sed 4.8 版。

这样的东西行不通吗?

$ sed -n '/log.*1/,+4p' file
log number 1
line1, data, here
line2,data,here
line3,data,here
and so on

如果你只需要在匹配后打印 100 行,这应该是你所需要的。

$ sed -n '/log.*1/,+100p' file