如何组合两个或多个wc命令的结果?

时间:2016-08-12 05:25:31

标签: bash shell awk

如何组合两个或多个wc命令的结果?

wc *.foo
wc *.bar

要查看行,字数和字节的总和?

这是我到目前为止所做的:

wc *.foo|grep total
wc *.bar|grep total

但是当我尝试组合命令时,我在命令提示符上出现了奇怪的行为:

{ wc *.foo & wc *.bar; }|grep total

我想将输出传递给awk来计算总和:

awk '{l+=$1; w+=$2; b+=$3} END {print "total lines: " l ", words: " w ", bytes: " b}'

2 个答案:

答案 0 :(得分:1)

wc *.foo *.bar | awk '/total/ {print "total lines: " $1 ,"words: " $2, "bytes: " $3}'
total lines: 18 words: 23 bytes: 53

答案 1 :(得分:1)

使用;分隔命令并将其封装在( )内:

( wc *.foo ; wc *.bar; ) | grep total

或者,如果您只需要wc,则可以将两个通配符传递给它(它将为您提供两种文件类型的总数):

wc *.foo *.bar | grep total