我使用这个脚本将多个文件压缩成单独的 zip 文件(虽然是一个自动化服务,所以是 Bash)
for f in "$@"
do
zip -j "$f.zip" "$f"
done
它运行完美,但是 zip 文件的名称中有扩展名:
zipme.jpg 输出为 zipme.jpg.zip
我想要的结果是:zipme.zip
如果您可以保留扩展名并将句点替换为下划线,那就更好了:zipme_jpg.zip
我的许多客户都对这两个句号有问题。现在我在压缩后手动删除它们。有人能告诉我如何修复脚本吗?
答案1
Jpeg 已经压缩过了,不需要再用 zip 压缩。不过你可以在参数扩展中使用子字符串删除来删除扩展名。
for f in "$@"
do
zip -j "${f%.*}.zip" "$f"
done
${f%.*}
从文件名中删除扩展名。