尝试在文件目录中搜索以“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
选项。