Имеем файлы:
ls ".../Data/Music/Original Sound Tracks/Silent Hill The Movie (2006)"
'Silent Hill The Movie - Alyssa.mp3'
'Silent Hill The Movie - Cafe.mp3'
'Silent Hill The Movie - Die (Bonus Track - Used in Teaser Trailers).mp3'
'Silent Hill The Movie - End Credits Part 1.mp3'
'Silent Hill The Movie - End Credits Part 2.mp3'
'Silent Hill The Movie - End Credits Part 3.mp3'
'Silent Hill The Movie - Johnny Cash - The Ring of Fire.mp3'
'Silent Hill The Movie - Journey to the School.mp3'
'Silent Hill The Movie - Main Theme.mp3'
'Silent Hill The Movie - The Cliffside.mp3'
'Silent Hill The Movie - The Ghost and the Car.mp3'
'Silent Hill The Movie - This is my daughter... Sharon.mp3'
'Silent Hill The Movie - Under the Tree.mp3'
'Silent Hill The Movie - Welcome to Silent Hill.mp3'
Можно отдельно по файлу назначить тэги, но это скучно:
id3tag --song "$(find *Die*| cut -d ' ' -f6-20 |sed 's/.mp3 //g')" *Die*
Пробую что-то вроде:
find . -iname "*.mp3" -exec id3tag --song "$(echo {} | cut -d ' ' -f6-20 |sed 's/.mp3//g')" {} \;
но получается хрень.
Как это лучше оформить?
find находит файлы, передаёт их id3tag, тот получает полное имя файла и название тэга, взятое из имени: $(echo {} | cut -d ' ' -f6-20 |sed 's/.mp3//g')
.
В идеале брать бы название альбома из названия папки, в которой лежат файлы. А названия трэков какой более вменяемой конструкцией, чем я придумал выше.