Grep不显示路径/文件:行

如何grep并只返回匹配的行?即路径/文件名从结果中被省略。

在本例中,我想查看当前目录中的所有.bar文件,搜索术语FOO

find . -name '*.bar' -exec grep -Hn FOO {} \;
213158 次浏览

从手册页:

-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.

不需要find。如果你只是在一个特定的目录中寻找一个模式,这应该足够了:

grep -hn FOO /your/path/*.bar

其中-h是隐藏文件名的参数,如man grep:

- h, no-filename

输出时禁止文件名前缀。这是默认值 当只有一个文件(或只有标准输入)需要搜索时

注意你在用

- h, with-filename

打印每个匹配项的文件名。当有时,这是默认值

.

.

只需将-H替换为-h。有关选项的更多详细信息,请查看man grep

find . -name '*.bar' -exec grep -hn FOO {} \;