当在一堆文件上使用awk时,如何获得propper行?

当在一堆文件上使用awk时,如何获得propper行?,awk,Awk,我有一堆标记文件,我想得到文件名和模式发生的行号。我试过这样的方法: awk '/pattern/ && NR > 7 {print FILENAME, NR, $0}' *.md 发生的情况是,awk将所有文件视为一个文件,并给出了错误的编号。我还使用了zsh,我不知道我遗漏了什么。我已经在网上搜索过了,但没有结果 列出文件的条件是模式发生在所有标记文件的第七行之后。使用FNR,这是当前输入文件的记录(行)编号 awk '/pattern/ && FNR

我有一堆标记文件,我想得到文件名和模式发生的行号。我试过这样的方法:

awk '/pattern/ && NR > 7 {print FILENAME, NR, $0}' *.md
发生的情况是,awk将所有文件视为一个文件,并给出了错误的编号。我还使用了zsh,我不知道我遗漏了什么。我已经在网上搜索过了,但没有结果


列出文件的条件是模式发生在所有标记文件的第七行之后。

使用
FNR
,这是当前输入文件的记录(行)编号

awk '/pattern/ && FNR > 7 {print FILENAME, FNR, $0}' *.md

awk有一个内部变量
NR
,它是当前处理的所有记录的总
记录数
,在多个文件中累积。还有内部变量
FNR
,它是当前文件的记录编号。你感兴趣的是后者。我不知道FN和FNR之间的确切区别,它是巨大的。