我正在使用 Linux,并且有一个如下文件:
0.b10_to_1.0.txt, 0 , 56 , 14
0.b3_to_0.b6.txt, 5 , 56 , 7
0.b6_to_0.b7.txt, 1 , 17 , 7
0.b7_to_0.b8.txt, 0 , 34 , 14
0.b8_to_0.b9.txt, 1 , 20 , 5
0.b9_to_0.b10.txt, 2 , 139 , 24
1.0_to_1.1.txt, 0 , 0 , 1
1.1.1_to_1.1.2.txt, 1 , 0 , 0
1.1.2_to_1.1.3.txt, 0 , 0 , 0
1.1_to_1.1.1.txt, 0 , 0 , 0
这实际上是我使用命令 sort 得到的结果,但正如您所见,0.b10
是第一行,而我希望它是以 开头的行之后的行0.b9
,1.1
是最后一行,而我希望它位于 之前1.1.1
。也就是说,我想按版本号对其进行排序。
有没有简单的方法可以实现我想要的?
答案1
这并不是您想要的,但是:
sed 's/[.b]//g' <yourfile> | sort -n
生成:
03_to_06txt, 5 , 56 , 7
06_to_07txt, 1 , 17 , 7
07_to_08txt, 0 , 34 , 14
08_to_09txt, 1 , 20 , 5
09_to_010txt, 2 , 139 , 24
010_to_10txt, 0 , 56 , 14
10_to_11txt, 0 , 0 , 1
11_to_111txt, 0 , 0 , 0
111_to_112txt, 1 , 0 , 0
112_to_113txt, 0 , 0 , 0
小数点和“b”阻止您按数字排序。