Linux Bulk переименовывает мультимедийные файлы и каталоги, чтобы круглые скобки помещались в конце года в конце имени файла и имени каталога

348
Peter Freeman

У меня есть несколько файлов домашнего видео в разных каталогах, в конце имени каталога которых указан год, чтобы указать год, когда видео было снято. Он также находится в конце имен файлов в этом каталоге и перед расширением. Я хочу поставить круглые скобки в течение года.

У некоторых файлов и каталогов также может быть год (или числа, которые выглядят как год) в имени файла в других позициях, но я просто хочу поставить скобки вокруг года в конце. Например вот один из каталогов:

Videos/Xmas 2004 - Time To Go 2004 

содержит:

Xmas 2004 - Time To To 2004.mp4  Xmas 2004 - Time To Go 2004.txt  Xmas 2004 - Time To Go 2004.readme  

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

Videos/Xmas 2004 - Time To Go (2004) 

содержит

Xmas 2004 - Time To To (2004).mp4  Xmas 2004 - Time To Go (2004).txt  Xmas 2004 - Time To Go (2004).readme 

Как мне это сделать? Я могу использовать команду "find", чтобы получить файлы и каталоги:

find /home/user/Videos/ -iname "* [1-2][0-9][0-9][0-9]" # Find directories find /home/user/Videos/ -iname "* [1-2][0-9][0-9][0-9].*" # Find files 

Мне интересно, как я могу использовать "-exec {} \;" структура для использования команды rename или mv (или sed или awk), или я пишу сценарий bash для управления строкой имени файла и помещаю ее в "-exec {} \;"

0

1 ответ на вопрос

0
pii_ke

Этот скрипт будет печатать необходимые mvкоманды для stdout. Вы должны сохранить их в файл ( sh script > file) и проверить их. Если вы находите их безопасными для выполнения, тогда вы можете запустить команды в file ( sh file). Или вы можете изменить, printчтобы systemв самом сценарии.

find $1 -type f > /tmp/to_rename find $1 -type d >> /tmp/to_rename perl -lne ' $re = qr/([12]\d\d\d)(\.\w*)?$/; if (/$re/) { $old = $_; s/$re/(\1)\2/; print("mv \"$old\" \"$_\""); } ' /tmp/to_rename 
@PeterFreeman, если вы найдете ответ приемлемым, пожалуйста, отметьте его. Приветствия. :) pii_ke 7 лет назад 0

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