要求:假如现在有个文本,格式如下:
a       1
b       2
c       3
b       4
a       5
d       6
f       7
g       8
c       9
d       10

左边一列是随机的字母,右边一列是随机的数字,然后要求写个脚本输出格式为:
a   6    
b   6    
c   12   
d   16   
f   7    
g   8 

就是将相同字母后面的数字相加在一起,并按上面的格式输出


代码如下:
#!/bin/bash
for fir in {a..z}
do
        grep $fir /tmp/shell/file > /dev/null
        [ "$?" -eq "0" ] && grep "$fir" /tmp/shell/file|awk '{sum+=$2}END{printf "%-3s %-5s\n",$1,sum}'
done

输出结果如下:
[root@server shell]# ./test.sh 
a   6    
b   6    
c   12   
d   16   
f   7    
g   8   

如果大家有其他更好的办法,可以说出来交流下~