使用awk命令求和、最大值、平均值等

awk命令可以非常方便的对一个文件的某些列求和、最大值、平均值等。

如test.txt文件的内容如下:

1  2.1
2  1.9
3  2.2
4  1.8
下面的操作都是对第二列进行。

求和

cat test.txt |awk '{a+=$2}END{print a}'
求最大值
cat test.txt | awk 'BEGIN{a=0}{if ($1>a) a=$1 fi}END{print a}'
求平均值
cat test.txt | awk '{sum+=$0}END{print sum/NR}'
注意:不能有空行或非数据行,不然求得的平均值就会有错误,因为这些行被算入NR中,但实际对sum没有贡献。

标签: linux shell

相关文章推荐

添加新评论 (无需注册,可直接评论)