awk '{ c=$1"\t"$2"\t"$3; if(c in a) b[c]=a[c]","$4"\t"w[c]; else { a[c]=$4; b[c]=$4"\t"$5; w[c]=$5; }}END{ for(k in a) print k"\t"b[k];}' file.txt | sort
使用awk数组来完成。
实测结果如下: