Linux Bash grep输出文件名和行号不匹配
我需要得到一个与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-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它更好,因为它在单个命令中完成所有操作(不需要多个管道命令)