加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

unix排序多个字段

发布时间:2020-12-15 18:53:21 所属栏目:安全 来源:网络整理
导读:我正在尝试对下面的文件进行排序: col1(升序)col2(降序)col3(升序)col4(降序) 我想使用-k命令,而不是 – 语法. 我已经弄清楚如何使用旧的语法: sort -t " " +0 -1 +2 -3 +4r testfile 但它几乎不直观. 我没有想出使用-k选项的正确方法.谢谢. 这是测试文件
我正在尝试对下面的文件进行排序:

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,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,4r

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读