如果需要,可以在文件名中添加零的简单方法

如果需要,可以在文件名中添加零的简单方法

在这里的大力帮助下,我很快就将所有 jpg 文件转换为 gif(再次感谢)

但是当我查看我的文件时,我注意到我在某个文件夹的文件名中添加了一个零。

我尝试使用的文件名标准是 001.gif、002.gif……但是有些文件有 01.gif、02.gif 等等,这对我来说并不好。

因此,通过从转换中获得的代码,我找到了一些可以调用 globe star 的东西,我准备看看是否可以自己修复它:)

但当我运行代码时什么也没发生。现在我只是试着看看我是否可以转换包含 JPG 的文件

for f in /lib/**/*jpg; do
        if [ "${#f}" -eq 2 ]; then
    mv "$f" "0$f" 
    fi 
done

答案1

有很多不同的方法可以做到这一点,但以你的尝试作为起点

for f in /lib/**/[0-9][0-9].jpg; do
  b="${f##*/}"; d="${f%/*}"; 
  echo mv "$f" "${d}/0${b}"; 
done

也就是说,您无需匹配所有jpg文件,然后尝试测试每个文件有多少位数字,只需匹配前导数字恰好为两位的文件即可。echo一旦您确信其工作正常,即可删除。


或者,你也可以使用基于 Perl 的命令来执行如下操作prename

prename -n 's/(\d+)\./sprintf("%03d.",$1)/e' /lib/**/*.jpg

这将获取 a 之前的任何非空数字序列,.并用零填充重新打印它们,使其最小宽度为 3 位数字。

相关内容