问题:如何显示 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

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

解答

您可以使用

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'

据我了解,使用&&,第二个命令依赖第一个返回运行;使用;将只运行它们,一个接一个,不管。这种情况下,我觉得;比较合适。

Logo

学AI,认准AI Studio!GPU算力,限时免费领,邀请好友解锁更多惊喜福利 >>>

更多推荐