Bash:找到Grep
以下命令通过递归搜索当前目录和所有子目录来查找所有出现的“some string”Bash:找到Grep,bash,grep,find,Bash,Grep,Find,以下命令通过递归搜索当前目录和所有子目录来查找所有出现的“some string” grep -r -n 'some string' . 此命令递归搜索当前目录和所有子目录,并返回格式为*.axvw的所有文件 find . -name '*.axvw' 我想把这两个命令放在一起,通过递归搜索当前目录,但只查看以“axvw”结尾的文件,从而获得所有出现的“some string” 当我尝试运行以下命令时,未返回任何内容: find . -name '*js' | grep -n 'som
grep -r -n 'some string' .
此命令递归搜索当前目录和所有子目录,并返回格式为*.axvw的所有文件
find . -name '*.axvw'
我想把这两个命令放在一起,通过递归搜索当前目录,但只查看以“axvw”结尾的文件,从而获得所有出现的“some string”
当我尝试运行以下命令时,未返回任何内容:
find . -name '*js' | grep -n 'some string'
我做错了什么?您可以使用
查找中的-exec
选项:
find . -name '*.axvw' -exec grep -n 'some string' {} +
或者使用xargs
:
find . -name '*.axvw' -print0 | xargs -0 grep -n 'some string'
find-名称'*js'-execgrep-n'某些字符串'{}\代码>
我想应该有用
编辑:只是为了好玩,我相信你也可以使用双grep
find.|grep'some string'| grep js
请参见此处给出的答案:可能重复No,您建议的“double grep”没有帮助--它在两个阶段都将文件名变灰,而不是内容。-exec grep-n'some string'{}+
将使查找-exec
方法在性能上与xargs竞争,并保证在2006年POSIX规范中可用。