如何按2个单独的列排序?例如,我想先按第6列排序,然后按第4列排序
column4 column5 column6
lae2894 603 user1
e2894 2096 user1
e2894 2096 user1
e2894 2096 user1
lae2894 603 user1
lae2894 603 user1
这些已按以下命令排序:
sort -t, -k6 users.txt > sorted-user.txt
但我想要的输出应该是这样的:
column4 column5 column6
e2894 603 user1
e2894 2096 user1
e2894 2096 user1
laee2894 2096 user1
lae2894 603 user1
lae2894 603 user1
答案 0 :(得分:1)
sort
的大多数版本都允许多个关键规范。试试这个:
sort -t, -k6,6 -k4,4 input.txt
我假设您的实际输入文件使用,
作为分隔符,因为您在示例命令中指定了这一点(这意味着您粘贴的“示例”数据并不真正代表您的文件...)。另请注意,只有一个数字的密钥规范(如-k6
)表示从该字段开始并延伸到行尾的单个密钥,因此为了指定要排序的单个字段,需要使用上面的语法。
答案 1 :(得分:1)