у меня есть список mp3
файлы с именем so:
$artist/$album ($year)/$tracknum $title.mp3
многие из этих треков имеют неправильные или отсутствующие теги, которые я исправляю с помощью id3v2
и регулярное выражение, потому что имена файлов все правильно. Вот пример того, как я устанавливаю заголовки:
for mp3 in *.mp3; do id3v2 -t "$(echo $mp3 | cut -d. -f1 | cut -d -f2-)" "$mp3"; done
(Примечание: кавычки есть, потому что названия часто имеют пробелы, что заставляет bash жаловаться, если пробелы не используются)
мой вопрос заключается в следующем: есть ли лучший способ извлечь определенную подстроку из этих файлов? В случае титулов я не могу использовать grep -o
без соответствующего $tracknum
потому что многие треки имеют цифры и пробелы в названиях (это означает, что мне нужно "([0-9a-zA-Z ]+)"
мой рисунок, который совпадает с полным именем перед .mp3
).
я почти уверен, что есть гораздо лучший способ сделать это. Есть?