MacOS 10.9 Mavericksで正規表現を使用して、ターミナルコマンドで数百の画像の名前を変更する必要があります。
ファイルの名前は次のようになります。
0045AW489R3T(IPCAM)_0_20131124101245_931.jpg
0021DF025C8E(IPCAM)_0_20131127101721_44591.jpg
389223GT4Z6W(IPCAM)_0_20131128103423_7893282.jpg
名前を次のように変更する必要があります。
2013-11-24 10-12-45.jpg
2013-11-27 10-17-21.jpg
2013-11-28 10-34-23.jpg
誰かがそれを行う方法を教えてもらえますか?
あなたが試すことができます
for a in *.jpg ; do mv -- "$a" "${a:22:4}-${a:26:2}-${a:28:2} ${a:30:2}-${a:32:2}-${a:34:2}.jpg" ; done
少し醜いですが、それは仕事を成し遂げるはずです。いつものように、必ず前にコピーでテストしてください。
ファイル名の最初の部分の長さが常に同じであるとは限らない場合は、 awk を使用して2番目の_
の後の文字列を抽出し、最初の8桁を使用してファイル名を作成できます。
#!/usr/bin/env bash
for file in folder/*; do
outName=$(awk -F"_" '{ print substr($3,1,4)"-"substr($3,5,2)"-"substr($3,7,2) }' <<< "${file}").jpg
mv "${file}" "${outName}"
done