具有可变宽度大小的字符串的字母数字排序



我被困在一个小的排序步骤。我有一个巨大的文件,有>300K个条目,文件必须在包含字母数字标识符的特定列上排序,如

Rpl12-8
Lrsam1-1
Rpl12-9
Lrsam1-2
Rpl12-10
Lrsam1-5
Rpl12-11
Lrsam1-101
Lrsam2-1
Act-1
Act-100
Act-101
Act-11

问题是可变宽度大小,所以我无法指定第二个关键标识符(sort -k 1.8n)。第一次排序是第一个字母,然后是它旁边的数字,然后是"-"后面的第三个数字。我是否可以使用分隔符字段在"-"之后特别启用排序,这样我就不用关心字符串的宽度了。

期望输出为:

Act-1
Act-11
Act-100
Act-101
Lrsam1-1
Lrsam1-2
Lrsam1-5
Lrsam1-101
Lrsam2-1
Rpl12-8
Rpl12-9
Rpl12-10
Rpl12-11

以上数据在input.txt:

sort -t- -k1,1 -k2n input.txt

您可以使用-t将字段分隔符更改为-,然后使用-k1,1仅对第一个字段(作为字符串)进行排序,最后使用-k2n对第二个字段(作为数字)进行排序。

相关内容

  • 没有找到相关文章

最新更新