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

Chr*_*ris 12 linux ack

ack foo *
Run Code Online (Sandbox Code Playgroud)

返回行列表:

bar.txt
28: this is foo stuff

dump.txt
12: results of foo

gobs.txt
1137: more lines with foo
Run Code Online (Sandbox Code Playgroud)

ack -c -l 
Run Code Online (Sandbox Code Playgroud)

回报

3
Run Code Online (Sandbox Code Playgroud)

我的问题是,我怎么能同时显示两者?我想要第一个示例中的行列表第二个示例中匹配的行数.

Aar*_*ine 18

您可以使用

ack -hc(-h简写--no-filename)获得总数.

根据ack文档/手册页:

-c, - count

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

如果与-h(--no-filename)组合,ack则只输出一个总计数.

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

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

或者,更好(IMO):

ack 'pattern'; ack -hc 'pattern'

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