如何按多列排序?

如何按多列排序?

我有一个制表符分隔的文件,我想按第 9、14 和 16 列对它进行排序。我的意思是,所有在第 9 列一致的行都应按第 14 列排序,其中,那些也符合第 9 列的行应按第 14 列排序。同意第 14 列应按第 16 列排序。(所有列应按升序排序,但前两列应按字母顺序排序,其余一列应按数字排序。)

我尝试了各种形式的 ( gnu) sort,但没有得到所需的排序顺序。手册页没有帮助。谁能告诉我实现上述排序的正确咒语?

答案1

sort -t '\t' -k9,9 -k14,14 -k16,16n

(记住您需要指定排序键的开始位置以及他们的终点,否则(如当您使用-k9代替时-k9,9)它们在行尾结束)。

相关内容