你如何 grep 并且只返回匹配的行?即结果中省略了路径/文件名。
在这种情况下,我想查看当前目录中的所有 .bar 文件,搜索术语 FOO
find . -name '*.bar' -exec grep -Hn FOO {} \;
没必要find
。如果您只是在特定目录中寻找模式,这应该足够了:
grep -hn FOO /your/path/*.bar
隐藏文件名的参数在哪里-h
,从man grep
:
-h,--无文件名
抑制输出文件名的前缀。当只有一个文件(或只有标准输入)要搜索时,这是默认设置。
请注意,您正在使用
-H, --with-文件名
打印每个匹配的文件名。当有多个文件要搜索时,这是默认设置。
只需替换-H
为-h
. 检查man grep
有关选项的更多详细信息
find . -name '*.bar' -exec grep -hn FOO {} \;
从手册页:
-h, --no-filename
Suppress the prefixing of file names on output. This is the default when there
is only one file (or only standard input) to search.