linux多數發行版自帶的sort程式,非常強大,在此只說多字段排序
sort 有個引數-k,可以指定字段,有比較複雜的語法,不在文字範圍內。
一下為一段資料(從基因中得到,僅僅作為demo),檔名為 data
chr13 3008566 3008677
chr9 3024384 3024515
chr19 3157071 3157172
chr5 3236386 3236476
chr13 3041044 3041191
chr12 3045343 3045532
chr6 3087308 3087625
chr5 3109870 3110091
chr9 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
C vector多欄位排序
c 當中vector的資料型別是基本型別時,我們利用std sort很容易排序,當我們的型別是自定義的結構體,並且我們還要實現按多字段排序,我有兩種方法 1.我們通過過載operator方法來實現 本例子實現了struct中多個字段排序 cpp view plain copy include inc...
轉 多欄位排序
多欄位排序的問題其實很簡單,只要實現乙個自己的comparator就可以。例如我有乙個類 class student 然後我有乙個arraylist,新增了三個學生進去 public static void main string args 我的排序規則是,先按名字牌,如果名字一樣的,按照id來排,...
Mysql order by 多欄位排序
降序desc 由大到小 公升序asc 由小到大 mysql單個字段降序排序 select from table order by id desc mysql單個字段公升序排序 select from table order by id asc mysql多個字段排序 select from tabl...