Я пытаюсь использовать команду переименования в терминале в Ubuntu, чтобы добавить строку в начало некоторых имен файлов avi следующим образом.
rename -n 's/(\w)\.avi$/String_to_add__$1\.avi/' *.avi
Так что я ожидаю следующего:
String_to_add_MyMovie.avi
Проблема в том, что когда я запускаю команду, она добавляет строку в конец имени файла, поэтому я получаю следующее:
MyMovie_String_to_add_.avi
Я не уверен, что у меня неправильный синтаксис perlexpr или что-то еще. Любое понимание приветствуется.
UPDATE:
Спасибо за предложения, я попробовал предложения от alno и plundra и сделал следующую модификацию:
rename -n 's/(\w+)\.avi$/String_to_add__$1\.avi/' *.avi
Но теперь файл получает строку, вставленную в середине имени, следующим образом:
My_String_to_add_Movie
Мои извинения, но я не упомянул, что заголовкам предшествуют 3 числовых значения, поэтому номенклатура имени файла равна {3 numbers}-My_Movie.avi
, например, 001-My_Movie.avi
. Но я не думал, что это будет иметь значение, так как я предполагаю, что \w+
соответствует буквенно-цифровым символам, может ли быть проблема "-"?
Еще не попробовал подход Кристиана, я хочу использовать команду переименования или хотя бы понять, почему она не работает, прежде чем я попробую другой подход.