特征相同行的合并

data:

1001  hisk01
1001  hisk02
1001  hisk03
1002  hisk04
1002  hisk05
1002  hisk06
1003  hisk07
1003  hisk08

 

期望输出:

1001 hisk01 hisk02 hisk03
1002 hisk04 hisk05 hisk06
1003 hisk07 hisk08

 

脚本:

# 方法1:
# 省略END,使用<(echo)写法
awk '{if(x==$1) {i=i" "$2} else {if(NR>1){print i}; i=$0}; x=$1}' data <(echo)

# 方法2:
# 使用数组与asorti排序
awk '{a[$1]=a[$1]?a[$1]" "$2:$2} END{for(i=1;i<=asorti(a,b);i++) print b[i],a[b[i]]}' data
View Code

 

posted @ 2020-05-25 10:42  bigtree2pingping  阅读(123)  评论(0编辑  收藏  举报