nix*_*win 4 bash scripting pattern-matching
我使用此脚本将.png
目录中的所有文件转换为.jpg
文件.如果我想不仅将png文件转换为jif,还要将tif,gif和bmp文件转换为jpg,如何修改此脚本?
#!/bin/bash
for f in *.png ; do
convert "$f" -resize 50% "${f%.*}.jpg"
done
Run Code Online (Sandbox Code Playgroud)
hmo*_*liu 10
只需添加您想要处理的exensions; 例如:
for f in *.png *.tif *.gif; do
Run Code Online (Sandbox Code Playgroud)
要不就:
for f in *.{png,tif,gif}; do
Run Code Online (Sandbox Code Playgroud)
另一种方法可能是:找到目录或文件夹树中的每个图像文件,并将它们转换为jpg,除非图像已经是jpg文件 ; 例如(未测试):
find . -exec bash -c 'file "$1" | grep "image data" | grep -iv JPEG && convert "$1" -resize 50% "${1%.*}.jpg"' {} {} \;
Run Code Online (Sandbox Code Playgroud)