linux中sort命令的高级用法,介绍按多个列值进行排列的例子
在linux中,使用sort按行进行排序是很简单的。
来看具体的例子吧。
Group-ID Category-ID Text Frequency
---------------------------------------------- 200 1000 oranges 10 200 900 bananas 5 200 1000 pears 8 200 1000 lemons 10 200 900 figs 4 190 700 grapes 17
下面使用这些列进行排序(列4在列3之前进行排序,而且列4是逆序排列)
* Group ID (integer)
* Category ID (integer) * Frequency “sorted in reverse order” (integer) * Text (alpha-numeric)
排序后的结果应该为:
Group-ID Category-ID Text Frequency
---------------------------------------------- 190 700 grapes 17 200 900 bananas 5 200 900 figs 4 200 1000 lemons 10 200 1000 oranges 10 200 1000 pears 8
可以直接使用sort命令,解决这个问题:
复制代码代码示例:
sort -t $'\t' -k 1n,1 -k 2n,2 -k4rn,4 -k3,3 <my-file>
解释如下:
最终的linux命令如下:
复制代码代码示例:
sort -t $'\t' -k 1n,1 -k 2n,2 -k4rn,4 -k3,3 my-file
|