我正在尝试对以下格式的文件进行排序
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