0%

awk 笔记

实例一:
test.txt文件内容如下:

上海 291760
上海 5976
上海 75233
云南 4017
云南 63196
云南 8189
内蒙古 11227
内蒙古 54657
内蒙古 7289
北京 34902
北京 370128
北京 99264
吉林 11486
吉林 4826
吉林 88162
四川 16441
四川 179978
四川 18618
天津 10028
天津 130041
天津 17501
宁夏 13474
宁夏 16181
宁夏 376
安徽 123710
安徽 17193
安徽 7956
山东 35178
山东 485465
山东 55371
山西 116435
山西 15161
山西 19815

第一列是地区,第二列是出现的次数,将第一列相同的第二列数值相加,并显示?

1
awk '{a[$1]+=$2}END{for(i in a)print i,a[i]}' test.txt

实例二:
如何取消科学计数显示?
使用OFMT="%f"输出,如:

1
2
3
4
[root@root /]$echo '123456789123456' |awk '{print $0+0}'
1.23457e+14
[root@root /]$echo '123456789123456' |awk 'BEGIN{OFMT="%.0f"}{print $0+0}'
123456789123456