我正在处理旧版代码库,我们尝试使用cwebp
命令将所有jpeg / png文件转换为webp格式。不幸的是,许多图像文件的名称中都带有空格。
示例:i am poorly named.jpg
因此,当运行以下bash脚本以查找目录中的所有jpeg并循环并对其进行转换时,用空格分隔的单词将被视为另一个文件,因此图像永远不会转换。 我们不想删除空格,而只创建一个名称完全相同的webp文件。
files=$(find ./ -type f -name "*.jpg")
for jpg in $files
do
webp="${jpg/%jpg/webp}";
if [ ! -f $webp ]; then
echo "The webp version does not exist";
cwebp -q 80 "$jpg" -o "$webp";
fi
done
我已尝试将以上代码中的jpg=$(printf '%q' "$jpg")
紧跟do
之后放置。
如果文件i am poorly named.webp
存在,我希望创建i am poorly named.jpg
。
答案 0 :(得分:0)
但是没有真正的理由来存储所有文件名。因此,另一种选择是:
find ./ -type f -name "*.jpg" | while read jpg
do
....
但这仅在文件名不包含换行符时有效。对于带有换行符的文件,还有其他解决方案。如有需要,请询问。