У меня есть набор файлов, их имена могут содержать алфавит, цифры, пробелы, точки, дефисы или символы подчеркивания.Удалите все из имен файлов, кроме определенной части, принятой RegEx
Возможности могут быть:
word-123_AnotherWord-asdf1234567.mp4
word-123_AnotherWord-ASDF1234567.mp4
word-123_AnotherWord-1234567asdf.mp4
word-123_AnotherWord-1a2s3d4f5g6.mp4
word-123_AnotherWord-asdf-123456.mp4
word-123_AnotherWord-asdf_123456.mp4
word-123_AnotherWord-123456-asdf.mp4
word-123_AnotherWord-123456_asdf.mp4
word-123_AnotherWord-asdf123456-.mp4
word-123_AnotherWord-asdf123456_.mp4
word-123_AnotherWord--asdf123456.mp4
word-123_AnotherWord-_asdf123456.mp4
word-123_AnotherWord--asdf_12345.mp4
word-123_AnotherWord-_asdf-12345.mp4
word-123_AnotherWord-asdf--12345.mp4
word-123_AnotherWord-asdf_-12345.mp4
... etc
Я хочу:
(1) с RegEx взять последний 11 текстовую строку из их имен (все, что было).
может быть RegEx для этого может быть такой:
/([a-zA-Z0-9-_]{11})+(?:\.mp4)$/
(2) переименовать файлы с помощью принятых RegEx части, чтобы быть:
outputregex.mp4
Что-то вроде этого:
for i in *.mp4;
do new_name=RegEx from i;
$i rename to $new_name;
done
Спасибо за сотрудничество!
Я использую Perl для переименования. Что-то по этой линии: http://www.leancrew.com/all-this/2011/09/renaming-with-larry-wall/ – 4ae1e1
Используйте [rename] (http://man7.org/linux/man-pages /man1/rename.1.html) – 123
Вы говорите, что включены «дефис», но вы удаляете его в своем примере. Это неясно. –