我正在尝试对以下格式的文件进行排序
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
答案 0 :(得分:1)
在 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