如何grep并只返回匹配的行?即路径/文件名从结果中被省略。
在本例中,我想查看当前目录中的所有.bar文件,搜索术语FOO
find . -name '*.bar' -exec grep -Hn FOO {} \;
如何grep并只返回匹配的行?即路径/文件名从结果中被省略。
在本例中,我想查看当前目录中的所有.bar文件,搜索术语FOO
find . -name '*.bar' -exec grep -Hn FOO {} \;
当前回答
不需要找。如果你只是在一个特定的目录中寻找一个模式,这应该足够了:
grep -hn FOO /your/path/*.bar
其中-h是隐藏文件名的参数,例如从man grep:
- h, no-filename 在输出中禁止文件名的前缀。这是默认值 当只有一个文件(或只有标准输入)要搜索时。
注意你在用
- h, with-filename 打印每个匹配的文件名。当有时,这是默认值 要搜索的文件不止一个。
其他回答
不需要找。如果你只是在一个特定的目录中寻找一个模式,这应该足够了:
grep -hn FOO /your/path/*.bar
其中-h是隐藏文件名的参数,例如从man grep:
- h, no-filename 在输出中禁止文件名的前缀。这是默认值 当只有一个文件(或只有标准输入)要搜索时。
注意你在用
- h, with-filename 打印每个匹配的文件名。当有时,这是默认值 要搜索的文件不止一个。
从手册页:
-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.
把-H换成-H。查看man grep以获得更多关于选项的详细信息
find . -name '*.bar' -exec grep -hn FOO {} \;