- 论坛徽章:
- 0
|
写了个通用点的,不论几行X几列都可以,并格式化了输出
- [root@mylinux tmp]# cat file1
- 1 2
- 数学 80 60
- 语文 70 90
- [root@mylinux tmp]# awk 'NR==1{row=NF;for (i=1;i<=row;i++) r[i]=$i;v=r[1];gsub(/[^#]/," ",v)}NR>1{c[NR-1]=$1;for (i=1;i<=row;i++) r[i]=r[i]"\t"$(i+1)}END{printf v;for (i=1;i<=NR-1;i++) printf "\t"c[i];print "";for (i=1;i<=row;i++) print r[i]}' file1
- 数学 语文
- 1 80 70
- 2 60 90
复制代码
- [root@mylinux tmp]# cat file
- 001 002 003
- 数学 80 60 88
- 语文 70 90 77
- 英语 81 92 66
- 化学 71 82 76
- [root@mylinux tmp]# awk 'NR==1{row=NF;for (i=1;i<=row;i++) r[i]=$i;v=r[1];gsub(/[^#]/," ",v)}NR>1{c[NR-1]=$1;for (i=1;i<=row;i++) r[i]=r[i]"\t"$(i+1)}END{printf v;for (i=1;i<=NR-1;i++) printf "\t"c[i];print "";for (i=1;i<=row;i++) print r[i]}' file
- 数学 语文 英语 化学
- 001 80 70 81 71
- 002 60 90 92 82
- 003 88 77 66 76
复制代码
[ 本帖最后由 ywlscpl 于 2009-5-27 22:05 编辑 ] |
|