Linux Bash grep输出文件名和行号不匹配

Linux Bash grep输出文件名和行号不匹配,linux,bash,shell,grep,cut,Linux,Bash,Shell,Grep,Cut,我需要得到一个与grep匹配的列表,包括文件名和行号,但没有匹配字符串 我知道grep-Hl只给出文件名,grep-Hno只给出匹配字符串的文件名。但这些对我来说并不理想。我需要得到一个不匹配但行号为的列表。对于这个grep-Hln不起作用。我尝试了grep-Hn'pattern'| cut-d”“-f1,但它没有正确地剪切文件名和no行 你用cut很好地指出了它,只是你需要:字段分隔符。另外,我认为你需要第一组和第二组。因此,使用: grep -Hn 'pattern' files* | cu

我需要得到一个与grep匹配的列表,包括文件名和行号,但没有匹配字符串


我知道
grep-Hl
只给出文件名,
grep-Hno
只给出匹配字符串的文件名。但这些对我来说并不理想。我需要得到一个不匹配但行号为的列表。对于这个
grep-Hln
不起作用。我尝试了
grep-Hn'pattern'| cut-d”“-f1
,但它没有正确地剪切文件名和no行

你用
cut
很好地指出了它,只是你需要
字段分隔符。另外,我认为你需要第一组和第二组。因此,使用:

grep -Hn 'pattern' files* | cut -d: -f1,2
样品
你用
cut
很好地指出了它,只是你需要
字段分隔符。另外,我认为你需要第一组和第二组。因此,使用:

grep -Hn 'pattern' files* | cut -d: -f1,2
样品
我想你想要这个,只需要行号:

grep -nh PATTERN /path/to/file | cut -d: -f1
示例输出:

12
23
234
...

不幸的是,您需要在此处使用
cut
。纯
grep

没有办法做到这一点,我想你想要的只是行号:

grep -nh PATTERN /path/to/file | cut -d: -f1
示例输出:

12
23
234
...
不幸的是,您需要在此处使用
cut
。用纯的
grep

试试看,没有办法做到这一点

grep -RHn Studio 'pattern' | awk -F: '{print $1 , ":",  $2}'
试一试


awk可以在单个命令中完成此操作:

awk '/pattern/ {print FILENAME ":" NR}' *.txt

awk可以在单个命令中完成此操作:

awk '/pattern/ {print FILENAME ":" NR}' *.txt

看来这也是个不错的选择。我不太熟悉awk,我想是时候学习了。TnxYes它更好,因为它在单个命令中完成所有操作(不需要多个管道命令),这似乎也是一个不错的选择。我不太熟悉awk,我想是时候学习了。TnxYes它更好,因为它在单个命令中完成所有操作(不需要多个管道命令)