【发布时间】:2024-01-17 16:50:01
【问题描述】:
需要在最后一个匹配后打印行到文件末尾。匹配的数量可以是任意的,并且不是确定的。我有一些如下所示的文字。
MARKER
aaa
bbb
ccc
MARKER
ddd
eee
fff
MARKER
ggg
hhh
iii
MARKER
jjj
kkk
lll
想要的输出是
jjj
kkk
lll
我是否将 awk 与 RS 和 FS 一起使用以获得所需的输出?
【问题讨论】:
-
我在
awk解决方案之上添加了grep和sed解决方案。 -
所需的输出是否也包含
MARKER或只是您显示的内容? -
@Allan 没有问题。谢谢。我在 perl 脚本中使用您答案中的第一个命令。 Perl 脚本将 $0 解释为脚本名称,而不是 EOF 之前的行。有没有办法解决这个问题?
-
@Allan 这是我的 perl 脚本中的行 "$data = `zcat file.gz | awk -v RS='MARKER\n' 'END{printf $0}' | grep 'Data : '`"
-
@Allan 没关系。我必须逃脱$ 0。 printf \$0