Переименовать файлы с помощью sed и mv

Я хочу переименовать файлы в формате:

img_MM-DD-YY_XX.jpg

img_MM-DD-YY_XXX.jpg

в:

] newyears_YYYY-MM-DD_XXX.jpg

Где:

  • YYYY = год
  • MM = месяц
  • DD = день
  • XXX или XX = номер фотографии

Я придумал этот сценарий, но не работает:

for filename in ?*.jpg; do
        newFilename=$(echo $filename | \
        sed 's/img_\(.*\)-\(.*\)-\(.*\)_\([0-9][0-9]\)\./newyears_20\3-\1-\2_0\4./;
                s/img_\(.*\)-\(.*\)-\(.*\)_\([0-9][0-9][0-9]\)/newyears_20\3-\1-\2_\4/' -)
        mv $filename $newFilename
done

Любая помощь будет принята с благодарностью.

8
задан tiagob 15 April 2011 в 02:27
поделиться