В настоящее время я борюсь с некоторыми музыкальными папками. Однажды я решил назвать их по шаблону: artist - album - year. Сегодня я понял, что это не было умным ходом и теперь нужно называть мои каталоги по шаблону: year - artist - album, поскольку они будут отображаться в порядке возрастания, когда они перечислены.
Я начал выполнять переименование по но, имея примерно 700 папок, должен быть более простой способ; Я пытался использовать gprename, но я не очень хорошо разбираюсь в regex и bash-скриптах ...
Есть ли кто-нибудь, кто мог бы помочь мне избавить мои бедные кончики пальцев?
Некоторые примеры:
Aes Dana - Memory Shell - 2004
Anja Schneider & GummiHz - Back To Back (Remixes Part 2) - 2009
станет
2004 - Aes Dana - Memory Shell
2009 - Anja Schneider & GummiHz - Back To Back (Remixes Part 2)
EDIT: Некоторые имена артистов и альбомов имеют специальные символы, такие как And.Id или Kool & The Gang. Хотя каждый каталог имеет - в качестве разделителя.
Простой скрипт Python может выполнять такое задание:
$ tree
.
├── Aes Dana - Memory Shell - 2004
├── Anja Schneider & GummiHz - Back To Back (Remixes Part 2) - 2009
└── rename_dirs.py
2 directories, 1 file
$ ./rename_dirs.py */
$ tree
.
├── 2004 - Aes Dana - Memory Shell
├── 2009 - Anja Schneider & GummiHz - Back To Back (Remixes Part 2)
└── rename_dirs.py
Содержимое скрипта:
#!/usr/bin/env python
from shutil import move;
import sys
for i in sys.argv[1:] :
parts = i[:-1].split('-')
year = parts[-1].strip()
new_name = year + " - " + " - ".join(parts[:-1]).strip()
move(i,new_name)
Обратите внимание на использование: ./rename_dirs.py */