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,--计数
抑制正常输出;而是打印每个输入文件的匹配行数。如果
-l
有效,它将仅显示每个文件的行数匹配的行数。如果没有-l
,某些行数可能为零。如果与
-h
(--no-filename
)结合,ack
则仅输出一个总数。
这对我有用(扩展@Jordan的答案)-
ack 'pattern' && ack -hc 'pattern'
或者,更好(IMO):
ack 'pattern'; ack -hc 'pattern'
据我了解,使用&&
,第二个命令取决于第一个返回运行;无论如何,使用;
代替只会一个接一个地运行它们。在这种情况下,我认为;
是更合适的。
没有办法ack
在一个命令中输出你想要的两个东西。获得所需内容的最简单方法是将两个命令与&&
.