我想浏览当前目录(或子目录)中的所有文件,只有当文件包含某些单词时才回复文件名。
更多细节:
find -type f -name“* hello *”将为我提供名称中包含“hello”的所有文件名。但不是这样,我想搜索文件,如果该文件的内容包含“hello”,则打印出文件名。
有办法解决这个问题吗?
答案 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'