我的方法是把第一列的值取出放入一个文件b中
b内容如下:
001
002
003
004
......
我写了一个循环
for i in $(cat b)
do
awk ' $1=="'$i'" { mysum+=$2 } END { print “'$i'”,$mysum } ' a > >c
done
但是b文件大了之后,效率太慢,有别的好方法吗?
cat a |awk '{a[$1]=a[$1]+$2}END{for (i in a) print i,a}'
如果需要排序的话可以在后边加上|sort
如
root:~$ cat xx|awk '{a[$1]=a[$1]+$2}END{for (i in a) print i,a}'|sort
001 450
002 80
003 1655
004 120