我有一个数据文件如下;
ALIC 5.55 2.65 3.45
ALIC 2.56 2.78 3.99
AMC4 3.55 3.66 4.88
AMC4 3.00 3.67 4.78
ALIC 1.00 1.00 1.00
ALIC 0.95 1.00 1.00
AMC4 0.50 1.00 1.00
AMC4 0.01 1.00 1.00
我需要对第一列中的这些行进行排序,如下所示;
ALIC 5.55 2.65 3.45
ALIC 2.56 2.78 3.99
ALIC 1.00 1.00 1.00
ALIC 0.95 1.00 1.00
AMC4 3.55 3.66 4.88
AMC4 3.00 3.67 4.78
AMC4 0.50 1.00 1.00
AMC4 0.01 1.00 1.00
但是当我执行时sort -k 1 data
,我看到第二列中的数值按升序排序。哪个命令产生上述排序?
您需要做两件事。
首先,
sort -k 1
从键 1 开始,但默认在行尾停止:仅对键 1 进行排序,您需要-k 1,1
其次,默认情况下,GNU
sort
在整行上执行最后的“最后手段”排序——为了抑制这种情况,您需要添加--stable
选项。所以
这将按升序(像往常一样)按第一列排序,然后按降序(反向)按第二列排序。第二列被解释为一个数字:
您可能需要添加
--debug
标志以准确查看哪些键sort
操作: