如何分割文件路径以将各个子文件夹提取为变量?(Ubuntu Bash)

如何分割文件路径以将各个子文件夹提取为变量?(Ubuntu Bash),bash,Bash,我需要Ubuntu精确bash脚本的帮助 我在不同的文件夹中有几个tiff文件 masterFOlder--masterSub1 --masterSub1-1 --file1.tif |--masterSub1-2 --masterSub1-2-1 --file2.tif | |--masterSub2 --masterSub1-2 ..... 我需要运行Imagemagick命令并将它们保存到新

我需要Ubuntu精确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)并重新创建新的文件路径


感谢大家阅读此文。

此脚本应该可以运行

#!/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')
#/bin/bash
shopt-s extglob&[$#-eq 2&&-n$1&&-n$2]]|退出
主文件夹=${1%%+(/)}/
CONVERTFOLDER=$2
偏移量=${#主文件夹}
读取-r文件时;做
CPATH=${FILE:OFFSET}
CPATH=${CONVERTFOLDER}/${CPATH%.???}.png
CDIR=${CPATH%/*}
echo“将$FILE转换为$CPATH”
[[-d$CDIR]]|| mkdir-p“$CDIR”和&echo转换“$FILE”$CPATH”|| echo”转换失败

完成<如何执行imagemagick命令?单个文件的imagemagick命令为convert file1.tif file1。png@firaqpasto然后它应该是
convert“$FILE”“$CPATH”
。只需删除
echo