2017-01-11 12 views
1

こんにちは私のフォルダ内の特定のファイルの拡張子をソース拡張から宛先に変更したいと思います。 $ {var%pattern}メソッドを使用しようとしましたが、正しく取得できません。宛先へのソース拡張を変更する

#!/bin/bash 
folder="$1" 
source="$2" 
dest="$3" 
files="$(ls "$folder")" 
for file in $files; do 
    if [ "${$folder/file: -${#source}}" == "$source" ] 
    then 
      mv "$folder"/"$file" "$folder"/"${file%.$source}.$dest" 
    fi 
done 

答えて

2

最初に:lsを解析しないでください。配列を使用してファイルのリストを格納すると、比較の式が構文的に正しくありません。 %の使用は皮肉なことに正しいです。

files=("$folder"/*) 
for f in "${files[@]}"; do 
    if [[ $f = *.$source ]]; then 
     mv "$f" "${f%.$source}.$dest" 
    fi 
done 
+0

ありがとうございます! –

関連する問題