Hello, please excuse me for my awful english .
I try to wrote a script on bash for sorting my *.mp3 files (they are thousand's in one directory), sorting is based ot their mp3 tags. Тhere it is:
Code:
#!/bin/bash
mp3info -p '%a\n' *.mp3 | sort | uniq | sed 's/\ /_/g' | tr -d \' | tr -d \/ > dirlst.eni
mp3info -p '%f:%a\n' *.mp3 | sed 's/\ /_/g' | tr -d \' | tr -d \/ > trdirlst.eni
cat dirlst.eni | xargs mkdir
for dir in $(awk '{print $1}' < dirlst.eni )
do
cat trdirlst.eni | grep $dir > drls.eni
cat drls.eni | cut -d : -f 1 > trls.eni
for tr in $(awk '{print $1}' < trls.eni )
do
mv $tr -v --target-directory=$dir
done
done
And for better explanation(in case if you don't have mp3info to see output generated from it) I show you an exit of :
mp3info -p '%f:%a\n' *.mp3 :
in_mood_for_love.mp3:Ernesto Cortazar
Into_Violet_Excerpt.mp3:Bindlestiff
and so on...
And this is an exit of :
mp3info some_track.mp3 :
File: Zensual.mp3
Title: Zensual Track: 6
Artist: Karunesh
Album: Call of the Mystic Year: 2004
Comment: Genre: New Age [10]
This script must move every mp3 to directory that matches on "Artist:" field from mp3info, but script simply moves all files in first directory created from mkdir. Тhats is the problem, maybe I have a logical mistake in two "for" loops but I can't find it.
Thanks in advance for all of your help.