grep -rn --include=*.yml "MYVAR" your_directory
Run Code Online (Sandbox Code Playgroud)
请注意,默认情况下grep区分大小写(传递-i告诉忽略大小写),并接受正则表达式和字符串.
您没有为 grep 提供文件类型,而只是提供文件列表。不过,您的 shell 可以扩展一个模式来为 grep 提供正确的文件列表:
$ grep MYVAR *.yml
Run Code Online (Sandbox Code Playgroud)
如果您的.yml文件并非全部位于一个目录中,那么提高赌注并使用find:
$ find -name '*.yml' -exec grep MYVAR {} \+
Run Code Online (Sandbox Code Playgroud)
这将从当前目录并递归地更深地找到任何以 .yml 结尾的文件。然后它将文件列表替换为一对大括号{}。尾随\+只是一个特殊的find分隔符,表示-exec切换已完成。结果是匹配文件列表并将它们交给 grep。