gpt4 book ai didi

unix 对多个字段进行排序

转载 作者:行者123 更新时间:2023-12-03 20:01:15 25 4
gpt4 key购买 nike

我正在尝试按如下方式对文件进行排序:

col1(升序) col2(降序) col3(升序) col4(降序)

我想用 -k命令,而不是 +-句法。
我已经想出了如何使用旧语法:

sort -t " " +0 -1 +2 -3 +4r testfile

但这并不直观。
我还没有想出使用 -k 的正确方法选项。谢谢你。

这是测试文件:
5 3 2 9
3 4 1 7
5 2 3 1
6 1 3 6
1 2 4 5
3 1 2 3
5 2 2 3

结果:
1 2 4 5
3 4 1 7
3 1 2 3
5 3 2 9
5 2 2 3
5 2 3 1
6 1 3 6

最佳答案

您需要以下其中一项:

sort --key=1,1 --key=2,2r --key=3,3 --key=4,4r
sort -k1,1 -k2,2r -k3,3 -k4,4r

如以下记录:
pax$ echo '5 3 2 9
3 4 1 7
5 2 3 1
6 1 3 6
1 2 4 5
3 1 2 3
5 2 2 3' | sort --key=1,1 --key=2,2r --key=3,3 --key=4,4r

1 2 4 5
3 4 1 7
3 1 2 3
5 3 2 9
5 2 2 3
5 2 3 1
6 1 3 6

记得提供 -n选项,如果您希望它们被视为正确的数字(可变长度),例如:
sort -n -k1,1 -k2,2r -k3,3 -k4,4r

关于unix 对多个字段进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6338126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com