繁体   English   中英

linux bash'sort'按字典顺序

[英]linux bash 'sort' in dictionary order

我正在尝试按升序对文件进行排序。 该文件同时包含字母和数字值。

aae-miR-1
aae-miR-10
aae-miR-100
aae-miR-1000
aae-miR-11-3p
aae-miR-11-5p
aae-miR-1174
aae-miR-1175-3p
aae-miR-1175-5p
aae-miR-12-3p
aae-miR-124

我希望输出为

aae-miR-1
aae-miR-10
aae-miR-11-3p
aae-miR-11-5p
aae-miR-12-3p
aae-miR-100
aae-miR-124
aae-miR-1000
aae-miR-1174
aae-miR-1175-3p
aae-miR-1175-5p`

我用了,

sort -k1,1 -n <file> 

对于排序,采用数字和字母顺序,但未按预期进行。 请建议,使用sort

在这种情况下,应使用sort -t"-" -k3n file.txt

收到的输出:-

aae-miR-1
aae-miR-10
aae-miR-11-3p
aae-miR-11-5p
aae-miR-12-3p
aae-miR-100
aae-miR-124
aae-miR-1000
aae-miR-1174
aae-miR-1175-3p
aae-miR-1175-5p

这更加明确。 如果文件带有定界符,则'-t'选项用于提供定界符。 -k用于指定必须进行排序的键。 '-k'的格式为: -km[,n] ,其中m是开始键,n是结束键。 n是可选键,仅在需要时使用。

尝试:

sort -n -t- -k3 <file>
  • -n将按数字排序。
  • -t-将使用-作为字段分隔符。
  • -k3将使用第三个字段进行排序。

尝试使用分隔符:

sort -t - -k3n file

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM