Я немного новичок в программировании в целом, и я не уверен, как выполнить эту задачу в моем сценарии bash.
Краткая предыстория: при импорте моей музыкальной библиотеки (ранее организованной iTunes) в Banshee все файлы были продублированы, чтобы соответствовать стилю номеров Banshee (например: 02 вместо 02 ), кроме того, iTunes, по-видимому, не сохранил ID3 теги к файлам, поэтому многие из них пусты. Итак, теперь у меня есть несколько тысяч тегов, которые нужно исправить, и дубликаты файлов, от которых нужно избавиться.
Чтобы автоматизировать процесс, я начал учиться писать bash-скрипты. Я придумал сценарий (который вы можете увидеть здесь), который делает четыре вещи: удаляет ненужные файлы iTunes, принимает ввод от пользователя об информации тега ID3 и сохраняет ее в переменных, очищает любую существующую информацию тега из всех файлов, записывает новые теги с информацией, полученной от пользователя, с помощью программы под названием eyeD3.
Теперь, вот где я столкнулся со своей проблемой. Этот скрипт в основном слепо записывает информацию во все mp3-файлы в каталоге. Это нормально для тегов, общих для всех файлов, таких как исполнитель, альбом, общее количество треков, год и т. д. Но я не могу пометить каждый отдельный номер трека с помощью этого метода. Так что я до сих пор вручную редактирую тэги треков по одному. И это то, что я действительно не хочу делать 2000+ раз.
Все имена файлов выглядят так:
01. song1.mp3
02. song2.mp3
03. song3.mp3
Команда для записи трек-номера в метку выглядит так:
$ eyeD3 -n 1 "01. song1.mpg"
Итак... Я не уверен, как это автоматизировать. Мне нужно взять первые две цифры имени каждого файла, сохранить их где-нибудь, а затем вызвать каждую из них в отдельную команду eyeD3.