Переименование пучки файлов, но только часть названия

Мне нужно переименовать кучу файлов (около 167k) и только часть заголовка в каждом файле. From: Aaaa.bb - 2 tag tag_tag 9tag Aaaa.bb - 125 tag_tag 9tag Aaaa.bb - 3567 tag 9tag To: Aaaa.bb - 000002 tag tag_tag 9tag Aaaa.bb - 000125 tag_tag 9tag Aaaa.bb - 003567 tag 9tag Все на внешнем жестком диске Есть ли какой-нибудь инструмент или скрипт, который может мне помочь в этой ситуации? Также забыл упомянуть, что я все еще новичок в ubuntu и все эти хитроумные вещи, поэтому я попрошу упростить ответы

1
задан 18 October 2015 в 03:52

3 ответа

Я бы рекомендовал Python и использовать regex. Вот пример сценария, который я создал, который может cnahge всех файлов в папке и вложенных папках.

directoryChosen = (sys.argv[1])

print directoryChosen + "   thi is inside dollartohash"
if os.path.isdir(directoryChosen):
    for n in os.listdir(directoryChosen):
        if not n.startswith('.'):

            newname =  n.replace('$', '#')
            print newname
            if newname != n:
                path = os.path.join(directoryChosen, n)
                print path + "    this is path"
                target = os.path.join(directoryChosen, newname)
                print target + "   this is target"
                os.rename(path, target)

    newdir = directoryChosen.replace('$', '#')
    print newdir
    if directoryChosen != newdir :
         os.rename(directoryChosen, newdir)

Как вы можете видеть, он принимает каталог как аргумент и меняет символ на другой символ. Я уверен, что вы можете изменить часть замены.

1
ответ дан 23 May 2018 в 16:35

Вы можете использовать команду rename на основе perl для повторной печати последовательности цифр следующего пробела-дефиса в нужном формате и ширине поля, например

rename -vn -- 's/ - (\d+)/sprintf " - %06d", $1/e' *

(-n флаг означает «нет op», т. е. он просто выполнит сухой тест, чтобы проверить выражение: удалите его, если / когда вы уверены, что он работает правильно).

0
ответ дан 23 May 2018 в 16:35

Попробуйте pyRenamer переименовать файлы, которые переименовывают файлы с помощью шаблонов, замен, вставляют или удаляют текст или даже переименовывают файлы вручную.

У этого есть окно GUI с этими функциями:

Шаблоны для переименования файлов. Поиск & amp; заменить для переименования файлов. Вставьте и удалите символ в любом месте от имени файла. Капитализация (укажите имя файла в верхнем регистре). Общие замены. Вручную переименуйте выбранные файлы. Переименуйте изображения, используя их метаданные. Переименуйте музыку, используя ее метаданные. Источник

Установить: sudo apt-get install pyrenamer

0
ответ дан 23 May 2018 в 16:35

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

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