如何使用此grep模式递归搜索目录?我需要将这两个文件放在文件串的同一行。我不断收到消息,这是一个目录。如何以递归方式搜索扩展名为.cfc
的所有文件?
"<cffunction" and "inject="
grep -insR "<cffunction" | grep "inject=" /c/mydirectory/
答案 0 :(得分:0)
你已经倒退了,你应该将你的文件搜索传递给第二个命令,如:
grep -nisr "inject=" /c/mydirectory | grep "<cffunction"
编辑:要排除某些目录并仅在*.cfc
个文件中搜索,请使用:
grep -nisr --exclude-dir={/abs/dir/path,rel/dir/path} --include \*.cfc "inject=" /c/mydirectory | grep "<cffunction"
答案 1 :(得分:0)
使用find
和exec
:
find your_dir -name "*.cfc" -type f -exec grep -insE 'inject=.*<cffunction|<cffunction.*inject=' /dev/null {} +
find
以递归方式找到您的* .cfc文件并将其输入grep
,仅挑选常规文件(-type f
)inject=.*<cffunction|<cffunction.*inject=
捕获具有任何顺序的模式的行{} +
确保grep
的每次调用都能达到ARG_MAX文件/dev/null
grep
参数确保输出的前缀为文件名,即使只有*.cfc
个文件