可以通过调整 findgrep 命令来实现匹配多个文件后缀和搜索多个字段。下面是一些方法和示例:

匹配多个文件后缀

要匹配多个文件后缀(例如 .yml.yaml),您可以使用 -o 选项结合多个 -name 参数:

find ./ \( -name "*.yml" -o -name "*.yaml" \) -exec grep -H "password" {} +

匹配多个字段

要在文件中搜索多个字段(例如 passwordsecret),您可以使用 grep-e 选项:

find ./ -name "*.yml" -exec grep -H -e "password" -e "secret" {} +

两者结合

如果您想同时匹配多个文件后缀和多个字段,可以将两者结合起来:

find ./ \( -name "*.yml" -o -name "*.yaml" \) -exec grep -H -e "password" -e "secret" {} +

解释

  • -o:逻辑“或”运算符,用于在 find 中组合多个条件。

  • \( ... \):括号用于分组条件,需要转义以防止 shell 误解。

  • -egrep 选项,用于指定多个搜索模式。

  • -Hgrep 选项,输出结果包含文件名。

这些命令将帮助您在指定的文件类型中查找多个关键字,适用于复杂的搜索需求。

常用的命令:(在当前文件夹下查找.yml.yaml.properties所有这样结尾的文件后缀,并匹配其中的user、password、access内容)

find ./ \( -name "*.yml" -o -name "*.yaml" -o -name "*.properties" \) -exec grep -H -e "user" -e "password" -e "access" {} +

效果: