> yup.  'T'would be a problem.  However, the OP stated that each folder
> began with a unique number code (5 digits long).

It is a nit, but the OP said a "directory full of" not 
necessarily "exclusively full of" as you have already corrected for by adding 
the "find -type d".

> And here is the reason I avoid perl at all costs.
> They say there are no viruses for linux...

Do you say that because the bash solutions (repeated below) are soooo much 
more intuitive?  I'm just poking and not all that serious - I could've added 
newlines and comments to the perl but then it wouldn't have been a one liner.  

Somebody fluent in bash can understand these examples, but the same goes for 
the perl solutions and somebody semi-fluent in perl.  To somebody versed in 
neither, both may as well be Greek even though they get the job done.

> for file in *; do
>     new_name=$(echo $file | sed 's/^\([0-9]\{5\}\).*/\1/')
>     echo Renaming "$file" to "$new_name"
>     mv -v "$file" "$new_name"
> done

> find * -type d -maxdepth 0 | while read $d; do
>         tgt=`expr substr $d 1 5`
>         mv $d $tgt
> done

> do
> src=$i
> tgt=`expr substr $i 1 5`
> mv $src $tgt
> done

Personally I would fire up emacs, use dired mode on the directory, and do 
a %-R which is dired-do-rename-regexp which interactive allows you to rename 
files based on a regular expression.  I have used this on many occasions - it 
prompts for each file showing what you are renaming to as you go.

Paul

/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/

Reply via email to