Переименование полной аниме-серии

Я скачал это аниме Наруто на свой компьютер. Они названы как

NARUTO 50 — The Fifth Gate- A Splendid Ninja is Born_low.mp4

Я хочу просто переименовать их в что-то вроде этого Naruto_50.

Есть ли простой способ сделать это? Мне удобно пользоваться терминалом.

1
задан 28 November 2018 в 13:42

4 ответа

pyRenamer от из репозиториев Ubuntu по умолчанию является графическим renamer приложением, которое поддерживает файлы переименования с помощью шаблонов, включая выражения шаблона, которые встроены в pyRenamer. Переместите мышь через Исходный шаблон имени файла и Переименованный шаблон имени файла поля для показа списка выражений шаблона, которые доступны для того поля. Нажмите кнопка Preview для предварительного просмотра изменений прежде, чем применить их. Нажмите кнопка Rename для переименования файлов. Это - самый легкий способ обработать в пакетном режиме, переименовывают ряд видеофайлов.

pyRenamer является доступным fromo репозитории Ubuntu по умолчанию в Ubuntu 16.04 и ранее. В Ubuntu 18.04 и позже pyRenamer был заменен GPRename.

enter image description here

Для Вашего примера Вы соответствовали бы числам видео в ряду и .mp4 расширение в конце имен файлов и затем заменили бы Naruto_ в начале имен файлов в Переименованный шаблон имени файла поле.

0
ответ дан 28 November 2018 в 13:42

Вы могли также использовать находящееся в perl rename команда: что-то как

rename -- 's/(\w+)\s+(\w+).*/$1_$2.mp4/' *.mp4

который берет первые два "слова" (последовательности словесных символов, разделенных пробелом), отбрасывает остаток от имени и затем производит слова, разделенные подчеркиванием, сопровождаемым .mp4 точечное расширение.

Если Вы хотите к случаю заголовка первое слово, как обозначено в Вашем вопросе, Вы могли бы сделать то использование \u и \L модификаторы

rename -- 's/(\w+)\s+(\w+).*/\u\L$1_$2.mp4/' *.mp4

Тестирование использования -n (нет) и -v (подробные) переключатели с Вашим демонстрационным именем файла

$ rename -nv -- 's/(\w+)\s+(\w+).*/\u\L$1_$2.mp4/' *.mp4
NARUTO 50 — The Fifth Gate- A Splendid Ninja is Born_low.mp4 renamed as Naruto_50.mp4

Вы могли стать более необычными - например, то, чтобы заставлять это обработать точечные суффиксы в более общем плане вместо того, чтобы предположить, что они - все .mp4 - можно найти это Учебное руководство Regex полезным.

1
ответ дан 28 November 2018 в 13:42

Существует простое, хотя утомительный, путь, если Вы хотите придерживаться оболочки. Можно использовать bashрасширение параметра.

  • Модификация длины строки:

    ${PARAMETER:OFFSET}: расширьтесь от СМЕЩЕНИЯ положения.

    ${PARAMETER:OFFSET:LENGTH}: расширьтесь от СМЕЩЕНИЯ положения до конечной ДЛИНЫ.

    Например:

    $ test="This is a long string"
    $ echo $test
    This is a long string.
    $ echo ${test:0:4}
    This
    
  • Модификация корпуса:

    ${PARAMETER^}: первый символьный верхний регистр.

    ${PARAMETER^^}: весь верхний регистр.

    ${PARAMETER,}: первый нижний регистр.

    ${PARAMETER,,}: весь нижний регистр.

    $ test="This Is A Long String"
    $ echo ${test,}
    this Is A Long String.
    $ echo ${test,,}
    this is a long string.
    
  • Удаление подстроки:

    ${PARAMETER#PATTERN}: удалите ШАБЛОН, как bash понимает, с начала строки. Попытки найти самое короткое соответствие.

    ${PARAMETER##PATTERN}: то же, но самое долгое соответствие.

    ${PARAMETER%PATTERN}, ${PARAMETER%%PATTERN}: от окончания строки.

    Например:

    $ test="This is a long, long string."
    $ echo ${test#*long}
    , long string.
    $ echo ${test##*long}
    string.
    $ echo ${test%long*}
    This is a long, 
    
  • Поиск и замена:

    ${PARAMETER/PATTERN/STRING}: замените первое вхождение ШАБЛОНА со СТРОКОЙ.

    ${PARAMETER//PATTERN/STRING}: замените все случаи.

    ${PARAMETER/PATTERN}: удалите первое вхождение.

    ${PARAMETER//PATTERN}: удалите все.

    $ test="This is a long, long string."
    $ echo ${test/long/big}
    This is a big, long string.
    $ echo ${test//long/big}
    This is a big, big string.
    $ echo ${test//long}
    This is a , string. 
    

Так, Вы могли сделать простое for цикл и прогрессивно вносит изменения. Например:

#!/bin/bash
for i in *; do
    ext="${i##*.}" # get extension
    name="${i%% --*}" # get original name
    lname="${name,,}" # lowercase
    nsname="${lname// /_}" # all spaces to underscore
    mv "$i" "$nsname.$ext"
done
2
ответ дан 3 December 2019 в 06:41

Я рекомендую Вам Thunar это идет Thunar Bulk Rename

  • Откройте терминал

  • Для установки его запишите и выполните команду:

    • sudo apt install --no-install-recommends thunar

thunar-bulk-rename-1


В Вашем случае это могло быть путем (Это находится на испанском языке),

Первый шаг: thunar-bulk-rename-2

Второй шаг: thunar-bulk-rename-3

0
ответ дан 3 December 2019 в 06:41

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

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