ack "#define"
将递归到子目录中并查找包含 #define 的文件。但我想将搜索限制在 *.h 文件中,所以我尝试了
ack "#define" *.h
并且不再递归。唯一的结果来自工作目录中的文件。
版本:
ack 1.96 在 /usr/bin/perl 上的 Perl 5.14.2 下运行
答案1
通配符*.h
通过你的外壳进行扩展, 和确认仅接收单个文件作为其参数 – 它没有任何地方可以递归。
为了避免这种情况,请在单引号或双引号内指定通配符,但确认可能不会将其识别为通配符:ack "#define" "*.h"
。
更好的选择是使用--hh
仅包含头文件(参见--help type
), 或者-G '\.h$'
仅包含与指定 Perl 正则表达式匹配的文件。