awk 合并行请教~
源文件
复制代码
需求实现以下格式
复制代码
- A 001 10
- A 002 20
- A 003 30
- B 004 40
- B 005 50
- C 006 60
- C 007 70
- A AA B BB C CC
- 001 10 004 40 006 60
- 002 20 005 50 007 70
- 003 30
作者: wvuu 发布时间: 2011-06-04
回复 wvuu
复制代码
- $ echo 'A 001 10
- A 002 20
- A 003 30
- B 004 40
- B 005 50
- C 006 60
- C 007 70' |\
- awk '{if($1==v){nr++;a[nr,nf]=$2;a[nr,++nf]=$3;nf--;t=1}else{nr=1;nf+=t;a[nr,++nf]=$1;a[nr,++nf]=$1 $1;nf--;nr++;a[nr,nf]=$2;a[nr,++nf]=$3;nf--};v=$1}END{nr++;nf++;for(i=1;i<=nr;i++){for(j=1;j<=nf;j++)printf a[i,j] "\t";print""}}'
- A AA B BB C CC
- 001 10 004 40 006 60
- 002 20 005 50 007 70
- 003 30
作者: yinyuemi 发布时间: 2011-06-04