another shell script question!
hi! i have a dvd full of mp3 organized in \bandname\albumname\files. mp3 now i need a script which walks through this structure and creates in a dir on my hd anonymized links for example: band00x_album00x_00x i need this for accessing the whole files from MATLAB.
hi!
i have a dvd full of mp3 organized in \bandname\albumname\files.mp3
now i need a script which walks through this structure and creates in a dir on my hd anonymized links for example: band00x_album00x_00x
i need this for accessing the whole files from MATLAB.
The problem i have is that the directory names on the dvd contain whitespaces.
If i do
for mydir in $(find -type d ); do
cd $mydir
...
done
it doesnt work because $mydir contains only the first silbling of a directory name containing spaces is used. (example dirname:"alice in chains", $mydir only contains "alice")
how do i get the full dirname?
or should i do the whole thing in a other way?
thanks for help
stefan
i have a dvd full of mp3 organized in \bandname\albumname\files.mp3
now i need a script which walks through this structure and creates in a dir on my hd anonymized links for example: band00x_album00x_00x
i need this for accessing the whole files from MATLAB.
The problem i have is that the directory names on the dvd contain whitespaces.
If i do
for mydir in $(find -type d ); do
cd $mydir
...
done
it doesnt work because $mydir contains only the first silbling of a directory name containing spaces is used. (example dirname:"alice in chains", $mydir only contains "alice")
how do i get the full dirname?
or should i do the whole thing in a other way?
thanks for help
stefan
Participate on our website and join the conversation
This topic is archived. New comments cannot be posted and votes cannot be cast.
Responses to this topic
I do some shell scripting from time to time in my job...
This problem didn't seem so hard until I tried to play with it a bit...but it was. It's quite hard to read into an array or otherwise do something so that the part of the path separated by a space isn't treated as a separated path.
Anyway, try something like this:
find $PWD -type d|{
while read aline;do
cd "$aline"
do-some-commands-here...
done }
That's a pipe symbol "|" after the "d" and before the "{" .
HTH.
This problem didn't seem so hard until I tried to play with it a bit...but it was. It's quite hard to read into an array or otherwise do something so that the part of the path separated by a space isn't treated as a separated path.
Anyway, try something like this:
find $PWD -type d|{
while read aline;do
cd "$aline"
do-some-commands-here...
done }
That's a pipe symbol "|" after the "d" and before the "{" .
HTH.