gpt4 book ai didi

bash - 使用 bash 排序按多列对文件进行排序

转载 作者:行者123 更新时间:2023-12-05 08:27:10 24 4
gpt4 key购买 nike

这是我正在处理的文件

word01.2    10  25
word01.2 30 50
word01.1 10 30
word01.1 40 50
word01.2 40 50
word01.1 10 20
word01.1 5 8

当我尝试我的排序命令时

sort -k1,1 -k2,2 -k3,3 file.txt 

我收到以下信息;不明白为什么第2行和第1行没有排序,应该是倒序的

word01.1    10  30
word01.1 10 20
word01.1 40 50
word01.1 5 8
word01.2 10 25
word01.2 30 50
word01.2 40 50

当我尝试在排序中添加-g时,排序后的文件出现更多问题,第1列不再排序

sort -k1,1 -gk2,2 -gk3,3 file.txt 
word01.1 5 8
word01.1 10 20
word01.2 10 25
word01.1 10 30
word01.2 30 50
word01.1 40 50
word01.2 40 50

我想要的结果是

word01.1    5   8
word01.1 10 20
word01.1 10 30
word01.1 40 50
word01.2 10 25
word01.2 30 50
word01.2 40 50

最佳答案

你错过了 -n/--numeric-sort选项,根据字符串数值排序,而不是字典顺序(至少对于第二和第三字段):

$ sort -k1,1 -k2,2n -k3,3n file.txt
word01.1 5 8
word01.1 10 20
word01.1 10 30
word01.1 40 50
word01.2 10 25
word01.2 30 50
word01.2 40 50

请注意,您可以提供全局 -n 标志,将所有字段按数值或键排序。 key 格式为 -k KEYDEF,其中 KEYDEFF[.C][OPTS][,F[.C][OPTS]]OPTS 是一个或多个排序选项,例如n(数字)、r(反向), g(一般数字),h(人类数字)等

关于bash - 使用 bash 排序按多列对文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45042480/

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