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
我的问题是,如何同时显示两者?我希望第一个例子中的行列表和是第二个例子中匹配行数的计数。
答案 0 :(得分:16)
您可以使用
ack -hc
(-h
是--no-filename
的简写)以获得总计数。
根据the ack documentation/man page:
-c, - count
抑制正常输出;而是为每个输入文件打印匹配行的计数。如果
-l
生效,它将仅显示每个具有行匹配的文件的行数。如果没有-l
,则某些行数可能为零。如果与
-h
合并(--no-filename
)ack
,则只输出一个总数。
这对我有用(扩展@ Jordan的答案) -
ack 'pattern' && ack -hc 'pattern'
或者,更好(IMO):
ack 'pattern'; ack -hc 'pattern'
据我所知,使用&&
,第二个命令取决于第一个返回运行的命令;使用;
代替它们将一个接一个地运行它们,无论如何。在这种情况下,我认为;
更合适。
答案 1 :(得分:2)
没有办法让ack
在一个命令中输出你想要的东西。获得所需内容的最简单方法是将两个命令与&&
链接在一起。