Как удалить число из имен файлов?

как удалить число, доступное в имени файла?
В моем примере ниже, поскольку Вы видите, что я хочу удалить нуль

$ rename -n 's/Season\ (\d{2})\ Episode\ (\d{2}).+(\D{2})/Season\ $1\ Episode\ $2.mp4/' *

Season 01 Episode 01.mp4 renamed as Season 01 Episode 01.mp44  
Season 01 Episode 02.mp4 renamed as Season 01 Episode 02.mp44  
Season 01 Episode 03.mp4 renamed as Season 01 Episode 03.mp44  
Season 01 Episode 04.mp4 renamed as Season 01 Episode 04.mp44  
Season 01 Episode 05.mp4 renamed as Season 01 Episode 05.mp44  
Season 01 Episode 06.mp4 renamed as Season 01 Episode 06.mp44  
Season 01 Episode 07.mp4 renamed as Season 01 Episode 07.mp44  
Season 01 Episode 08.mp4 renamed as Season 01 Episode 08.mp44  
Season 01 Episode 09.mp4 renamed as Season 01 Episode 09.mp44  
Season 01 Episode 10.mp4 renamed as Season 01 Episode 10.mp44  
Season 01 Episode 11.mp4 renamed as Season 01 Episode 11.mp44  
Season 01 Episode 12.mp4 renamed as Season 01 Episode 12.mp44  
Season 01 Episode 13.mp4 renamed as Season 01 Episode 13.mp44  
Season 01 Episode 14.mp4 renamed as Season 01 Episode 14.mp44  
Season 01 Episode 15.mp4 renamed as Season 01 Episode 15.mp44  
Season 01 Episode 16.mp4 renamed as Season 01 Episode 16.mp44  
Season 01 Episode 17.mp4 renamed as Season 01 Episode 17.mp44  
Season 01 Episode 18.mp4 renamed as Season 01 Episode 18.mp44  
Season 01 Episode 19.mp4 renamed as Season 01 Episode 19.mp44  
Season 01 Episode 20.mp4 renamed as Season 01 Episode 20.mp44  
Season 01 Episode 21.mp4 renamed as Season 01 Episode 21.mp44  
Season 01 Episode 22.mp4 renamed as Season 01 Episode 22.mp44  
Season 01 Episode 23.mp4 renamed as Season 01 Episode 23.mp44  
Season 01 Episode 25.mp4 renamed as Season 01 Episode 25.mp44  
Season 01 Episode 26.mp4 renamed as Season 01 Episode 26.mp44  
Season 02 Episode 00.mp4 renamed as Season 02 Episode 00.mp44  
Season 02 Episode (this zero needs to be removed)***0***15.mp4 renamed as Season 02 Episode 01.mp44  
Season 02 Episode ***0***16.mp4 renamed as Season 02 Episode 01.mp44  
Season 02 Episode ***0***17.mp4 renamed as Season 02 Episode 01.mp44  
Season 02 Episode ***0***18.mp4 renamed as Season 02 Episode 01.mp44  
Season 02 Episode ***0***19.mp4 renamed as Season 02 Episode 01.mp44  
Season 02 Episode 01.mp4 renamed as Season 02 Episode 01.mp44  
Season 02 Episode ***0***20.mp4 renamed as Season 02 Episode 02.mp44  
Season 02 Episode ***0***21.mp4 renamed as Season 02 Episode 02.mp44  
Season 02 Episode 02.mp4 renamed as Season 02 Episode 02.mp44  
Season 02 Episode 03.mp4 renamed as Season 02 Episode 03.mp44  
Season 02 Episode 04.mp4 renamed as Season 02 Episode 04.mp44  
Season 02 Episode 05.mp4 renamed as Season 02 Episode 05.mp44  
Season 02 Episode 06.mp4 renamed as Season 02 Episode 06.mp44  
Season 02 Episode 07.mp4 renamed as Season 02 Episode 07.mp44  
Season 02 Episode 08.mp4 renamed as Season 02 Episode 08.mp44  
Season 02 Episode 09.mp4 renamed as Season 02 Episode 09.mp44  
Season 02 Episode 10.mp4 renamed as Season 02 Episode 10.mp44  
Season 02 Episode 11.mp4 renamed as Season 02 Episode 11.mp44  
Season 02 Episode 12.mp4 renamed as Season 02 Episode 12.mp44  
Season 02 Episode 13.mp4 renamed as Season 02 Episode 13.mp44  
Season 02 Episode 14.mp4 renamed as Season 02 Episode 14.mp44  

И поскольку Вы видите, что расширение также не переименовано правильно, с помощью переименовать команды. Я также знаю, что переименовывают команду, является неправильным, поэтому обеспечьте надлежащий.

1
задан 19 November 2016 в 12:37

1 ответ

Следующее более простое выражение могло бы быть достаточно:

rename -n 's/Season (\d{2}) Episode 0*(\d{2}).+mp4/Season $1 Episode $2.mp4/'
  • Использование продвижение 0* со второй группой для ловли дополнительного 0s перед двумя числами эпизода цифры.
  • последняя группа не необходима.
  • Вы не должны выходить из пробелов.
2
ответ дан 7 December 2019 в 13:40

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

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