把第一列相同的名称的第二列加起来:
cat add
111 1
222 3
111 4
111 5
222 2
333 3
444 4
333 3
cat add | awk '{a[$1]+=$2}END{for(i in a) printf
"%s %d\n",i,a[i]}'
444 4
111 10
333 6
222 5
(把含有111的行的第二列加起来等于10)
cat add | awk '{a[$1]+=$2}END{for(i in a) printf
"%s %d\n",i,a[i]}' | sort -n -r -k2
111 10
333 6
222 5
444 4
cat add | awk
'{a[$1]+=$2}END{for(i in a) printf "%s %d\n",i,a[i]}' | sort -n -r -k1
444 4
333 6
222 5
111 10
简单的把第二列加起来:
cat
add | awk '{a=a+$2}END{print a}'