Linux grep 查找以特定字母开头且包含特定单词的文件

Linux grep 查找以特定字母开头且包含特定单词的文件

尝试在文件目录中搜索以“h”开头且包含“enu”的文件名?

到目前为止这就是我所得到的,我只是不知道如何在一个命令行中处理两个 grep 语句?

find fs282/path/web/en_US.dic -exec grep "^h" {} \;

答案1

要查看文件名,请-name使用find.它应该采用常规文件名模式,因此h*enu*符合您的需求。

find /some/path -name "h*enu*"

grep相反,将逐行查看文件的内容,因此这将查找与模式匹配的行:

find /some/path -type f -exec grep '^h.*enu' /dev/null {} +

(输出将是行,而不仅仅是文件名。)

grep需要正则表达式,而不是 glob 通配符-name。另外,grep寻找匹配项之内行而不是完全匹配-name,因此^将模式锚定在行的开头。它/dev/null只是为了确保始终打印每个匹配行的文件名,即使只有一个匹配文件也是如此。通过 GNU 实现grep,人们可以使用该-H选项。

相关内容