このコードは、DD-MM-YYYYという名前の形式のファイルを含む一連のフォルダを検索し、YYYY-MM-DDという名前に変更します。ただし、このループは最初の反復で正常に動作しますが、2回目の実行で正規表現は解釈されません。ファイル名変更スクリプトが2回目のループで動作しない
#!/usr/bin/env bash
WORKING_DIRS=("/directory1" "/directory2")
for WORKING_DIR in ${WORKING_DIRS[@]}
do
echo "WORKING DIRECTORY : $WORKING_DIR"
echo "--------------------------------------------------------"
for entry in "$WORKING_DIR"/[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9].doc
do
IFS='/'
read -r -a array <<< "$entry"
file_name="${array[${#array[@]}-1]}"
echo "$file_name"
IFS='.'
read -r -a file <<< "$file_name"
echo "OLD DATE: $file"
IFS='-'
read -r -a file_split <<< "${file[0]}"
day=${file_split[0]}
month=${file_split[1]}
year=${file_split[2]}
new_date="$year-$month-$day"
echo "NEW DATE : $new_date"
mv "$WORKING_DIR"/"$file_name" "$WORKING_DIR"/"$new_date".doc
done
done
@Inianによる単語分割に配列対象の各エントリになります申し訳ありませんが、私はそれをupvotedが、それは登録する時に十分な担当者を持っていませんでした。ちょうどupvoted。 –