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

linux – 使用Unix排序使用小数部分对pos / neg数字进行排序

发布时间:2020-12-14 02:13:34 所属栏目:Linux 来源:网络整理
导读:使用sort(coreutils)5.2.1 我有以下文件,我想按字段4的非整数部分排序.这可以是负数或正数,也可能具有值INF. field1 field2 field3 tag=INF field5 field6field1 field2 field3 tag=INF field5 field6field1 field2 field3 tag=0.123 field5 field6field1 fi
使用sort(coreutils)5.2.1

我有以下文件,我想按字段4的非整数部分排序.这可以是负数或正数,也可能具有值INF.

field1 field2 field3 tag=INF field5 field6
field1 field2 field3 tag=INF field5 field6
field1 field2 field3 tag=0.123 field5 field6
field1 field2 field3 tag=4.22 field5 field6
field1 field2 field3 tag=5.77 field5 field6
field1 field2 field3 tag=-1.92 field5 field6
field1 field2 field3 tag=-1.91 field5 field6
field1 field2 field3 tag=INF field5 field6

我希望将其排序为

field1 field2 field3 tag=-1.92 field5 field6
field1 field2 field3 tag=-1.91 field5 field6
field1 field2 field3 tag=0.123 field5 field6
field1 field2 field3 tag=4.22 field5 field6
field1 field2 field3 tag=5.77 field5 field6
field1 field2 field3 tag=INF field5 field6
field1 field2 field3 tag=INF field5 field6
field1 field2 field3 tag=INF field5 field6

鉴于字段的数字部分位于字符位置4(假设索引从0开始,我不确定),我尝试使用以下选项进行排序:

> sort -g -k4.4 inputfile
> sort -g -k4.5 inputfile
> sort -n -k4.4 inputfile
> sort -n -k4.5 inputfile
> sort -g inputfile

这些都产生以下结果,这是接近但不太正确.大小正确排序,但我想要最负面值.

field1 field2 field3 tag=0.123 field5 field6
field1 field2 field3 tag=-1.91 field5 field6
field1 field2 field3 tag=-1.92 field5 field6
field1 field2 field3 tag=4.22 field5 field6
field1 field2 field3 tag=5.77 field5 field6
field1 field2 field3 tag=INF field5 field6
field1 field2 field3 tag=INF field5 field6
field1 field2 field3 tag=INF field5 field6

我怎样才能使排序行为?

FWIW,这里有更多信息:

LANG = en_US.UTF-8
Red Hat Enterprise Linux WS release 4 (Nahant Update 6)

解决方法

我在Mac上,所以它可能是一个稍微不同的实现,但我发现这个工作:

sort -gb -k 4.5,4 inputfile

在英语中:“以一般数字方式排序,忽略-blanks,使用第4-k(c)列数据的文件输入文件,从该列的第5个元素到第4列中数据的结尾”

field1 field2 field3 tag=-1.92 field5 field6
field1 field2 field3 tag=-1.91 field5 field6
field1 field2 field3 tag=0.123 field5 field6
field1 field2 field3 tag=4.22 field5 field6
field1 field2 field3 tag=5.77 field5 field6
field1 field2 field3 tag=INF field5 field6
field1 field2 field3 tag=INF field5 field6
field1 field2 field3 tag=INF field5 field6

(编辑:李大同)

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

    推荐文章
      热点阅读