繁体   English   中英

用数字顺序对制表符分隔文件中的行进行排序

[英]Sort rows in a tab delimited file with numerical order

我正在尝试对以下格式的文件进行排序

ch1 1 209
ch1 23 890
ch3 45 21
ch4 66 12
ch10 12 90
ch10 11 53

我正在使用命令

sort -t $"\t" -nk1 filename

但是结果是ch1在ch10之后

ch10 12 90
ch10 11 53
ch1 1 209
ch1 23 890
ch3 45 21
ch4 66 12

但是我希望数值在1之前排在10之前。 那么有人可以建议需要做什么吗? 预期结果:

ch1 1 209
ch1 23 890
ch3 45 21
ch4 66 12
ch10 12 90
ch10 11 53

KEYDEF的字段中指定数字开头的字符索引。 在这种情况下,我们要对第一个字段的数字部分(从第三个字符开始)进行排序,即-k1.3n

$ sort -k1.3n file
ch1     1       209
ch1     23      890
ch3     45      21
ch4     66      12
ch10    11      53
ch10    12      90

暂无
暂无

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

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