LINUX.ORG.RU

Массовое переименование файлов

 , ,


1

3

Здравствуйте! Собственно вышла такая проблема, после подгона названия всех файлов под метатеги в clementine большинство остались без .mp3 в конце, от чего их не понимает привычный мне clementine и qmmp.

Так как я нуб нубом, может кто подсказать bash-скрипт или что-то еще что бы до всех дописать в конце .mp3?



Последнее исправление: cetjs2 (всего исправлений: 1)

Ну, поскольку у тебя Clementine, значит KDE, юзай krename. Отсортируй по расширению и оставь только «не mp3», переименовывание с возможностью отката сделаешь одной кнопкой

BaBL ★★★★★
()

rename -n 's/(?<!\.mp3)$/.mp3/i' * | less
Если всё в порядке, то rename 's/(?<!\.mp3)$/.mp3/i' *

AITap ★★★★★
()
Ответ на: комментарий от unlog1c

возможно, но плеер с ласт.фм плагином «изкоробки» пока что устраивает

nday
() автор топика
Ответ на: комментарий от kostik87

Это не проблема, все равно названия все с тегов прогоню, только в следующий раз не забуду отметить в нужном месте галочку «добавить .mp3 в конце»

nday
() автор топика
Ответ на: комментарий от BaBL

Ну, поскольку у тебя Clementine, значит KDE

А если deadbeef, то гном? Классная логика.

Dragon59 ★★
()

Bash не нужен:

import os

for root, dirnames, filenames in os.walk('.'):
    for filename in filenames:
        name, ext = os.path.splitext(filename)
        if ext: continue

        src = os.path.join(root, filename)
        dst = src + ".mp3"

        print "'{}' --> '{}'".format(src, dst)
        os.rename(src, dst)
По-хорошему неплохо было бы еще заюзать python-magic:
import os
import magic

m = magic.open(magic.MIME)
m.load()

for root, dirnames, filenames in os.walk('.'):
    for filename in filenames:
        name, ext = os.path.splitext(filename)
        if ext == '.mp3':
            continue

        src = os.path.join(root, filename)
        mime, encoding = m.file(src).split(';')
        if mime != 'audio/mpeg':
            continue

        dst = os.path.join(root, name + '.mp3')

        print "'{}' --> '{}'".format(src, dst)
        os.rename(src, dst)

anonymous
()
Ответ на: комментарий от TheAnonymous

Зачем оно мне, когда у меня есть питон?

anonymous
()
Ответ на: комментарий от TheAnonymous

И кстати:
bash: sudo: command not found
ой...

anonymous
()

Krusader

Krusader поставь, он умеет как TotalCommander всё это делать! ((c)ipwww)

anonymous
()
find music -type f -a ! -name "*.mp3" -exec sh -c " [ -n "`file {}|grep layer\ III`" ] && mv -v \"{}\"{,.mp3}" \;
yozan
()

Всего-то одна команда...

find /path/to/files/ -type f | grep -v "\.[A-Za-z0-9]\{2,5\}$" | while read file;do if [ "`mimetype -M "$file" | sed -e 's/.*: //'`" == "audio/mpeg" ];then mv "$file" "$file.mp3";fi;done

erfea ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.