我无法使多列排序起作用

我无法使多列排序起作用
sort -t ';' -k1,1 -k2,2 -k3,3 < unsorted

(仅文件“未排序”中的第 1 列排序正确)

11;13;08
12;23;24
14;16;15
17;09;04

答案1

您的期望是错误的。sort确实只对整行进行排序。因此,它将首先查看第一列。如果有相同的项目,则将根据第二列对这些项目进行排序。

要对所有这些列进行独立排序,您可能需要先将不同的列提取到单独的文本文件中,每列一个,(awk可以这样做),然后对这些文件进行排序(sort),然后将它们重新组合成一个文件(paste,其中可以使用命令按列格式化输出column)。

相关内容