“找到”具体内容[linux]

时间:2016-09-29 06:34:35

标签: linux find command

我想浏览当前目录(或子目录)中的所有文件,只有当文件包含某些单词时才回复文件名。

更多细节:

find -type f -name“* hello *”将为我提供名称中包含“hello”的所有文件名。但不是这样,我想搜索文件,如果该文件的内容包含“hello”,则打印出文件名。

有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您可以使用GNU find和GNU grep作为

find /path -type f -exec grep -Hi 'hello' {} +

这种方式非常有效,因为它不会从grep返回多少个find个实例。这适用于find返回一组grep要搜索的文件的基本假设。如果您不确定文件是否可用,作为一种万无一失的方式,您可以使用带有xargs标志的-r,在这种情况下,xargs之后的命令仅在以下情况下执行:管道命令返回任何结果

find /path -type f | xargs -r0 grep -Hi 'hello'