Нужна помощь в массовом переименовании файлов с помощью командной строки, которые содержат определенную строку

У меня есть около 200 файлов с такими именами:

01_-_Back_Alley_Uproar.avi
01_-_Bad_Luck_Cat.avi
01_-_Beep_Beep.avi
02_-_Broomstick_Bunny.avi
02_-_Bunker_Hill.avi

и так далее. Я хотел бы переименовать их все, чтобы они выглядели так:

Back Alley Uproar.avi
Bad Luck Cat.avi
Beep Beep.avi
Broomstick Bunny
Bunker Hill

и так далее ...

Мне нужно использовать командную строку, поскольку я подключен через ssh через winSCP из окна Windows, чтобы попасть на мой сервер Ubuntu, содержащий эти файлы. Заранее спасибо.

1
задан 5 September 2013 в 11:06

2 ответа

Вы можете использовать команду rename с соответствующими регулярными выражениями, например,

.
s/^\d+_-_//

для «заменить начальную последовательность цифр с последующим подчеркиванием дефисом»; и

s/_/ /g

заменить подчеркивания пробелами. Итак,

rename -nv 's/^\d+_-_//;s/_/ /g' *.avi

-n заставляет его работать в тестовом режиме (пробный запуск) - протестируйте его в своем каталоге и, если вы счастливы, что он работает правильно, запустите его без n [ 119]

0
ответ дан 5 September 2013 в 11:06

Вы можете использовать следующую команду:

rename 's/[0-9]+_-_//; s/_/\ /g' *
0
ответ дан 5 September 2013 в 11:06

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

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