在这里的大力帮助下,我很快就将所有 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 位数字。