I wanted to get first post...

Here's my solution:

#!/bin/bash

for i in $( ls  );
do
src=$i
tgt=`expr substr $i 1 5`
mv $src $tgt
done


On 5/16/07, Dave Smith <[EMAIL PROTECTED]> wrote:

Wade Preston Shearer wrote:
> I have a directory full of directories that are all named in the
> following manner:
>
> #####_alpha_name
>
>
> I need them renamed to just:
>
> #####
>
>
> Is there an easy way via the command line to truncate them to just the
> first five characters (which would be just their ID number)?

This works for me, but is probably overkill:

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


You can change the \{5\} to whatever number you want to indicate the
number of digits to capture in a row.

--Dave

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




--
http://www.ryanbyrd.net

/*
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