如何显示确认结果和事件计数

时间:2012-11-14 06:10:15

标签: linux ack

ack foo *

返回行列表:

bar.txt
28: this is foo stuff

dump.txt
12: results of foo

gobs.txt
1137: more lines with foo

ack -c -l 

返回

3

我的问题是,如何同时显示两者?我希望第一个例子中的行列表是第二个例子中匹配行数的计数。

2 个答案:

答案 0 :(得分:16)

您可以使用

ack -hc-h--no-filename的简写)以获得总计数。

根据the ack documentation/man page

  

-c, - count

     

抑制正常输出;而是为每个输入文件打印匹配行的计数。如果-l生效,它将仅显示每个具有行匹配的文件的行数。如果没有-l,则某些行数可能为零。

     

如果与-h合并(--no-filenameack,则只输出一个总数。

这对我有用(扩展@ Jordan的答案) -

ack 'pattern' && ack -hc 'pattern'

或者,更好(IMO):

ack 'pattern'; ack -hc 'pattern'

据我所知,使用&&,第二个命令取决于第一个返回运行的命令;使用;代替它们将一个接一个地运行它们,无论如何。在这种情况下,我认为;更合适。

答案 1 :(得分:2)

没有办法让ack在一个命令中输出你想要的东西。获得所需内容的最简单方法是将两个命令与&&链接在一起。