grep没有显示path/文件:行
你怎么grep,只返回匹配的行? 即结果中省略了path/文件名。
在这种情况下,我想查看当前目录中的所有.bar文件,search术语FOO
find . -name '*.bar' -exec grep -Hn FOO {} \;
无需find
。 如果你只是在一个特定的目录中寻找一个模式,这应该就足够了:
grep -hn FOO /your/path/*.bar
其中-h
是隐藏文件名的参数,如从man grep
:
-h,–no-filename
禁止输出文件名的前缀。 当只有一个文件(或只有标准input)要search时,这是默认的。
请注意,我们使用
-H,–with-filename
打印每个比赛的文件名。 当有多个文件要search时,这是默认的。
用-h
replace-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.