Переместить часть имени файла в метаданные

У меня есть тысячи и тысячи песен, которые названы как;

Artist - Song.mp3
Artist - Song.mp3
etc

Что мне нужно сделать, это переместить все до «-» и добавить его к метаданным файла как « Artist »

Я пробовал несколько программ массового переименования и несколько команд, но ни одна из них, похоже, не работает, они просто перемещают информацию в имени файла. Все команды, которые я пробовал, являются «однострочными», так что, может быть, если в терминале я мог бы вырезать часть имени файла до «-», поместить его в текстовый файл, а затем как-нибудь это использовать? Я не уверен, все еще очень плохо знакомый с элементарным.

Если вы не можете сделать это в Ubuntu, у меня есть система Windows 7, которую я могу использовать.

2
задан 7 May 2016 в 07:37

1 ответ

Если Ваши песни все маркированы точно в формате, Вы предложили: Acris & Infra - Justice.mp3 простое for цикл может выполнить и метки и переименование последовательно с одной командой.

Тест следование маленького, создал резервную копию выбора Ваших файлов:

for f in *.mp3; do
   artist="$(printf "$f" | cut -d '-' -f 1 | sed 's/ *$//')"
   eyeD3 --artist "$artist" "$f" 
   mv -nv "$f" "$(printf "$f" | cut -d'-' -f 2 | sed 's/^ *//')"
done

Две точки:

  1. Эти mv команда имеет гарантию -n или --no-clobber опция в случае, если любой Ваш набор имеет 2 различных художников / файлы с тем же заголовком песни...
  2. необходимо будет установить eyeD3, чтобы сделать метки или просто изменить синтаксис для использования, какой бы ни теггер Вы являетесь самыми довольными
0
ответ дан 7 May 2016 в 17:37
  • 1
    Спасибо! это - лучший способ создать и установить модуль. – Confguy2016 23 December 2017 в 16:47

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

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