awk加Sort实现对前N-1个字段作Key,最后一个字段作Value的排序

最近有一些数据,形如:

a1,asdff,dddd,23

zz,ss,ff,hh,kk,56

pppp,90

Wwww,qqq,eee,ttt,yyy,44

这样的数据,需要将前面的N-1个字段作为Key,最后一个字段做Value,并根据Value排序,琢磨了很久,终于初步实现了,故在此备注和分享:

awk 'BEGIN{FS=","; OFS="  "}{
<span style="white-space:pre">	</span>for(i=1;i<NF;i++){
<span style="white-space:pre">	</span>if(i==1)
<span style="white-space:pre">		</span>u=$i
<span style="white-space:pre">	</span>else
<span style="white-space:pre">		</span>u=(u","$i)
<span style="white-space:pre">	</span>};
<span style="white-space:pre">	</span>print u,$NF
}' in.txt|sort -r -n -k2  



你可能感兴趣的:(排序,shell,awk,sort)