我正在尝试将ack-is-better-than-grep (ack) 与正则表达式一起使用来在我的代码存储库中查找行和片段。我的理解是 ack 使用Perl 衍生正则表达式,对吗?
但是,我不确定这些查询将如何工作:
ack 'foo'
ack '.*(foo)+.*'
ack '.*foo'
ack 'foo.*'
他们能给出不同的输出吗?如果是这样,为什么?
编辑:在我的测试中,它们输出不同的结果(例如,第一个输出的匹配比其他的多)。它们还突出显示同一行的不同部分。
编辑2:输出的差异显然与突出显示(输出的颜色)有关。我注意到,如果我使用上述命令的输出运行ack,--nocolor则它们是相同的。显然ack使用默认颜色运行会使部分输出在我的机器/配置中不可见。我在 Ubuntu 11.04 的 bash 的 GNOME 终端上运行它。