1. 程式人生 > >awk加Sort實現對前N-1個欄位作Key,最後一個欄位作Value的排序

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