- 论坛徽章:
- 18
|
本帖最后由 bikkuri 于 2014-02-17 17:01 编辑
改成这样以后可以正常排序了!- root@box:~/test# awk '{a[$4$3NR]=$0;b[len++]=$4$3NR}END{quicksort(b,0,len);for(i=1;i<=len;i++){print a[b[i]]}}function quicksort(b,p,r,q){if(p<r){q=partition(b,p,r);quicksort(b,p,q-1);quicksort(b,q+1,r)}}function partition(b,p,r,x,m,j,t){x=b[r];m=p;for(j=p;j<r;j++){if(b[j]<x){t=b[m];b[m]=b[j];b[j]=t;m++}}t=b[r];b[r]=b[m];b[m]=t;return m}' test.txt
- 2014-02-06 13:45:11 jane hp6 modified HSS.db 92
- 2014-02-06 13:45:10 john hp7 modified SGSN.d 63
- 2014-02-06 13:45:11 root hp7 modified GSGN.db 92
- 2014-02-06 13:45:10 sam hp7 modified SGSN.db 63
- 2014-02-06 13:50:11 root hp8 modified MME.db 66
- 2014-02-06 13:50:11 root hp8 modified PCRF.db 66
- root@box:~/test#
复制代码
这里的$4$3NR后面的NR是为了确保如果出现$4和$3都相同的记录则按NR排序是吧?
如果我知道不可能出现$4和$3都相同的记录,那这个NR可以去掉的吧? |
|