我需要Ubuntu Precise bash脚本的帮助。
我在各种文件夹中有几个tiff文件
masterFOlder--masterSub1 --masterSub1-1 --file1.tif
|--masterSub1-2 --masterSub1-2-1 --file2.tif
|
|--masterSub2 --masterSub1-2 .....
我需要运行一个Imagemagick命令并将它们保存到新文件夹“转换”,同时保留子文件夹树,即新树将
converted --masterSub1 --masterSub1-1 --file1.png
|--masterSub1-2 --masterSub1-2-1 --file2.png
|
|--masterSub2 --masterSub1-2 .....
如何将文件路径拆分为文件夹,替换第一个文件夹(要转换的masterFOlder)并重新创建新的文件路径?
感谢所有人阅读此内容。
答案 0 :(得分:1)
此脚本应该有效。
#!/bin/bash
shopt -s extglob && [[ $# -eq 2 && -n $1 && -n $2 ]] || exit
MASTERFOLDER=${1%%+(/)}/
CONVERTFOLDER=$2
OFFSET=${#MASTERFOLDER}
while read -r FILE; do
CPATH=${FILE:OFFSET}
CPATH=${CONVERTFOLDER}/${CPATH%.???}.png
CDIR=${CPATH%/*}
echo "Converting $FILE to $CPATH."
[[ -d $CDIR ]] || mkdir -p "$CDIR" && echo convert "$FILE" "$CPATH" || echo "Conversion failed."
done < <(exec find "${MASTERFOLDER}" -mindepth 1 -type f -iname '*.tif')
只需将echo convert "$FILE" "$CPATH"
替换为您使用的实际命令,然后运行bash script.sh masterfolder convertedfolder