我正在尝试按升序对文件进行排序。该文件包含字母和数字值。
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
答案 0 :(得分:1)
对于这种情况,您应该使用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'
选项用于提供 带分隔符的文件的分隔符。 &#39; -k&#39;用于指定 必须在其上进行分类的键。格式 &#39; -k&#39;是:-km[,n]
其中m是起始键,n是结束键。 n是可选键,仅在需要时使用。
答案 1 :(得分:1)
尝试:
sort -n -t- -k3 <file>
-n
将按数字排序。-t-
将使用-
作为字段分隔符。-k3
将使用第三个字段进行排序。答案 2 :(得分:1)
尝试使用分隔符:
sort -t - -k3n file