如何对文件名进行排序而不用前导零?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (47)

我想用以下模式排序立体图像文件

img_i_j.ppm,

其中我是图像计数器,j是相机的ID [0,1]。目前,如果我将它们分类使用

ls -1 *.ppm | sort -n

结果如下所示:

img_0_0.ppm
img_0_1.ppm
img_10_0.ppm
img_10_1.ppm
img_1_0.ppm  
img_11_0.ppm                        
img_11_1.ppm                        
img_1_1.ppm  
img_12_0.ppm

我需要有这样的输出:

img_0_0.ppm
img_0_1.ppm
img_1_0.ppm
img_1_1.ppm
img_2_0.ppm  
img_2_1.ppm
...                        
img_10_0.ppm                        
img_10_1.ppm  
...    

可以实现而不需要修改文件名?

提问于
用户回答回答于

正如在评论中看到的那样,使用

sort -V

我最初把它作为注释发布,因为这个参数并不总是在sort二进制文件中,所以必须使用sort -k -n ...

用户回答回答于

ls-v选择。来自man ls

-v     natural sort of (version) numbers within text

扫码关注云+社区

领取腾讯云代金券