Got stuck

Chris Norman chris.norman4 at ntlworld.com
Sat Dec 30 08:56:44 EST 2006


Hi Pawel,
If this does work, or you find a script which does, would you please post it
please? It would be useful for my music collection too.

Cheers,

Chris Norman
<!-- cnorman at rnibncw.ac.uk -->
----- Original Message ----- 
From: "Laura Eaves" <leaves1 at carolina.rr.com>
To: "Speakup is a screen review system for Linux." <speakup at braille.uwo.ca>
Sent: Saturday, December 30, 2006 1:35 PM
Subject: Re: Got stuck


> Hi there -- did you try the find command with a few tweaks?:
> To translate the files, try this ugly and untested line of code:
>
> find topdir -type f -exec "{ bd=`basedir '{}'`; bf=`basename '{}'`; cd
> $bd;
> mv $bf `echo $bf|sed -e 's/-/_/g'` }" -print
>
> Now as for the directories, I suppose you could use the same strategy with
> the following modification to be sure the deepest nested directories are
> translated first:
>
> find topdir -depth -type d -print | sort -r >tempfile
> for $D in `cat $tempfile`; do
>    bd=`basedir $D`; bf=`basename$D`; cd $bd
>    mv $bf `echo $bf | sed -e 's/-/_/g'`
> done
>
>
> As I said, this is untested, but it is intended to avoid accidental
> translation of a directory too soon in the process.
>
> Perhaps the first and second find commands could be merged into one
> script:
>
> find topdir -depth -print | sort -r >tempfile
>
> and then use the for loop on all files regardless of whether they are
> plain
> files or directories. This would also take in special files like FIFO's or
> symbolic links or whatever.
>
> Anyway, have fun and happy hacking.
> --le
>
> ----- Original Message ----- 
> From: "Pawel Loba" <pawel.loba at gmail.com>
> To: "Speakup is a screen review system for Linux."
> <speakup at braille.uwo.ca>
> Sent: Saturday, December 30, 2006 7:40 AM
> Subject: Got stuck
>
>
> Hello all.
> I need to rename a number of directories (in the range of 1000) and all of
> the mp3 files included in this directories (over 20000). What I want to
> achieve
> is to replace all of the dashes with underline sign.
> Some time ago I found a script to rename files this way within a given
> directory which looks as follows:
>
> for i in *.mp3;
> do
> mv "$i" `echo $i | tr "-" "_"`;
> done
>
> This script works very well within a given directory but doesn't want to
> work from the top directory witch actually includes this nearly 1000
> subdirectories.
> As an example, I'm getting somthing like this:
> mv: cannot move
> `./Kolakowski-Leszek-Klucz-niebieski/01-klucz-niebieski.mp3'
> to `./Kolakowski_Leszek_Klucz_niebieski/01_klucz_niebieski.mp3': no such
> file
> or directory
>
> It was suggested to me to replace *.mp3 with `find . -name '*.mp3'`
> But unfortunately, it did not work.
> I'm not a programmer just a user who tries to be smart, so, please be
> patient and treat me like a newbie. :-)
>
> hope all of you on here have a great new year.
> Thanks,
> Pawel.
>
>
> _______________________________________________
> Speakup mailing list
> Speakup at braille.uwo.ca
> http://speech.braille.uwo.ca/mailman/listinfo/speakup
>
>
> _______________________________________________
> Speakup mailing list
> Speakup at braille.uwo.ca
> http://speech.braille.uwo.ca/mailman/listinfo/speakup





More information about the Speakup mailing list