我需要获得与grep匹配的列表,包括文件名和行号但没有匹配字符串
我知道grep -Hl
只会提供文件名,而grep -Hno
会给只有匹配字符串的文件名。但那些不适合我的人。我需要获得一个没有匹配的列表但是没有行。对于此grep -Hln
不起作用。我尝试使用grep -Hn 'pattern' | cut -d " " -f 1
但它没有剪切文件名并且没有正确排列。
答案 0 :(得分:3)
awk可以在单个命令中执行此操作:
awk '/pattern/ {print FILENAME ":" NR}' *.txt
答案 1 :(得分:2)
您只需要cut
字段分隔符就可以很好地指出:
。另外,我认为你需要第一组和第二组。因此,使用:
grep -Hn 'pattern' files* | cut -d: -f1,2
$ grep -Hn a a*
a:3:are
a:10:bar
a:11:that
a23:1:hiya
$ grep -Hn a a* | cut -d: -f1,2
a:3
a:10
a:11
a23:1
答案 2 :(得分:0)
我想你想要这个,只是行号:
grep -nh PATTERN /path/to/file | cut -d: -f1
示例输出:
12
23
234
...
很遗憾,您需要在此处使用cut
。使用纯grep
无法做到这一点。
答案 3 :(得分:0)
尝试
grep -RHn Studio 'pattern' | awk -F: '{print $1 , ":", $2}'