可以通过调整 find
和 grep
命令来实现匹配多个文件后缀和搜索多个字段。下面是一些方法和示例:
匹配多个文件后缀
要匹配多个文件后缀(例如 .yml
和 .yaml
),您可以使用 -o
选项结合多个 -name
参数:
find ./ \( -name "*.yml" -o -name "*.yaml" \) -exec grep -H "password" {} +
匹配多个字段
要在文件中搜索多个字段(例如 password
和 secret
),您可以使用 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 误解。-e
:grep
选项,用于指定多个搜索模式。-H
:grep
选项,输出结果包含文件名。
这些命令将帮助您在指定的文件类型中查找多个关键字,适用于复杂的搜索需求。
常用的命令:(在当前文件夹下查找.yml
、.yaml
、.properties
所有这样结尾的文件后缀,并匹配其中的user、password、access
内容)
find ./ \( -name "*.yml" -o -name "*.yaml" -o -name "*.properties" \) -exec grep -H -e "user" -e "password" -e "access" {} +