linux多數發行版自帶的sort程序,非常強大,在此只說多字段排序,sort 有個參數-k,可以指定字段,有比較復雜的語法,不在文本范圍內。本文主要和大家介紹了linux sort多字段排序實例解析,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下,希望能幫助到大家。
一下為一段數據(從基因中得到,僅僅作為demo),文件名為 data
chr13 3008566 3008677chr9 3024384 3024515chr19 3157071 3157172chr5 3236386 3236476chr13 3041044 3041191chr12 3045343 3045532chr6 3087308 3087625chr5 3109870 3110091chr9 3115454 3115531
字段中間以空格分開
現在想首先按照染色體進行排序,然后相同的染色體上的基因按起始位點進行排序,那么這就是一個多字段的排序,而且第二個字段為數字,使用sort命令如下
sort -t ‘ ‘ -k1,1 -k2n,2 data
其中 -t ‘ ‘ 指定使用空格分列
-
-k1,1 指定以第一列為關鍵字排序
-
-k2n,2 指定以第二列為關鍵字做數據排序
也可以使用
sort +0 -1 +1n -2
效果是一樣的。
排序結果
chr12 3045343 3045532
chr13 3008566 3008677
chr13 3041044 3041191
chr19 3157071 3157172
chr5 3109870 3110091
chr5 3236386 3236476
chr6 3087308 3087625
chr9 3024384 3024515
chr9 3115454 3115531
相關推薦: