2016-01-18 2 views
2

У меня есть набор файлов с именами, какПереименование файлов с использованием регулярных выражений в Linux

20151016_174721.jpg 

и я хочу переименовать их, как

2015-10-16 17.47.21.jpg 

Я попытался с помощью rename используя следующее:

rename -n "s/(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2}).*$/$1-$2-$3 $4.$5.$6.jpg/" *.jpg 

Но это в конечном итоге говорит мне

20151016_174721.jpg renamed as -- ...jpg 

И я не могу понять, почему.

ответ

2

Вы можете использовать:

rename 's/(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2})(.*)$/$1-$2-$3 $4.$5.$6$7/' *.jpg 

Убедитесь, что использовать одинарные кавычки в шаблоне, чтобы избежать оболочки пытается расширить $1, $2 и т.д.

Смежные вопросы