- 论坛徽章:
- 0
|
本帖最后由 ywlscpl 于 2010-08-16 12:01 编辑
回复 1# ztj111
没有asort排序是比较麻烦
试试- awk -F '|' '!a[$2]++{b[++n]=$2}{c[$1","$2]+=$3;d[$1]}END{for (i=1;i<=n;i++) printf " "b[i];print "";for (i in d) {printf i;for (j=1;j<=n;j++) printf "\t"(i","b[j] in c?c[i","b[j]]:0);print ""}}' file | sort
复制代码 ?表达式也应该不支持
改下- awk -F '|' '!a[$2]++{b[++n]=$2}{c[$1","$2]+=$3;d[$1]}END{for (i=1;i<=n;i++) printf " "b[i];print "";for (i in d) {printf i;for (j=1;j<=n;j++) {printf "\t";if (i","b[j] in c) printf c[i","b[j]];else printf "0"}print ""}}' file | sort
复制代码 |
|