Найдите строку в имени и переместите ее имя до расширения

У меня есть много файлов в разных subdir. Я хотел бы переименовать все файлы с именем *-ABC-DE(7 numbers).ext в *-DE(7 numbers)-ABC.ext

Возможно ли это?

0
задан 19 February 2018 в 18:53

2 ответа

Учитывая

$ ls *.ext bar-ABC-DE7654321.ext foo-ABC-DE1234567.ext

, тогда

$ rename -v 's/(ABC)-(DE\d{7})/$2-$1/' *.ext rename(bar-ABC-DE7654321.ext, bar-DE7654321-ABC.ext) rename(foo-ABC-DE1234567.ext, foo-DE1234567-ABC.ext)

, в результате чего

$ ls *.ext bar-DE7654321-ABC.ext foo-DE1234567-ABC.ext

тест NB с -n сначала

0
ответ дан 17 July 2018 в 20:30

Учитывая

$ ls *.ext bar-ABC-DE7654321.ext foo-ABC-DE1234567.ext

, тогда

$ rename -v 's/(ABC)-(DE\d{7})/$2-$1/' *.ext rename(bar-ABC-DE7654321.ext, bar-DE7654321-ABC.ext) rename(foo-ABC-DE1234567.ext, foo-DE1234567-ABC.ext)

, в результате чего

$ ls *.ext bar-DE7654321-ABC.ext foo-DE1234567-ABC.ext

тест NB с -n сначала

0
ответ дан 23 July 2018 в 21:08
  • 1
    Да, это прекрасно. Он работает так, как я хотел. Тпх – Fabio Brassini 19 February 2018 в 19:29

Другие вопросы по тегам:

Похожие вопросы: