Linux 递归搜索给定名称包含字符串的文件

Linux 递归搜索给定名称包含字符串的文件

在 Linux shell 中,假设我在目录中/dir,我想在所有子文件夹中递归地查找名称中包含 stringname_string以及内部包含 string 的所有文件content_stringname_string可能位于文件名的开头、中间或结尾。我怎么能这么做呢?

我试图起诉 grep :

grep -r content_string /dir/*name_string*

但到目前为止我还没有那么幸运。

谢谢!

答案1

对于快速解决方案,虽然可能不如其他方法有效,

find /dir -type f -name '*name_string*' -print0 | xargs -0 grep -l content_string

答案2

我认为您可以使用以下 OR 语法:

grep -nriE '.*name_string.*|content_string' /dir

或者做我通常做的事情,即将第一个输出传递grep到另一个grep

grep -nriE '.*name_string.*' /dir | grep -nri 'content_string'

相关内容