0

我需要有关 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)并重新创建新的文件路径?

感谢所有阅读本文的人。

4

1 回答 1

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

于 2013-09-20T01:35:38.303 回答