On 16 Mar 2003, Kleiner Hampel wrote:

> Hi,
> 
> now it works, but because of the '*'.
> 
> now i want to remove the leading abc from all files in my directory.
> i tried this:
> 
> for i in *; do mv $i `echo $i | sed s/abc//`; done
> 
> but it doesn't do that.
> i always get the error, that the last arguement must be a directory!
> I guess, the reason are the white spaces in the names.
> perhaps the expression `echo $i | sed s/abc//` also have to be set in ''
> or so, but it doesn't work this way.
> 
> please help
> 
> regards,
> hampel
> 
for i in *; do temp=$(echo $i | sed s/abc.//) ; mv "$i"  "$temp" ; done

The . after abc is so your file names do not start with a space.  You 
need the quotes around both $i and $temp so that they are treated as a 
single file name.  You may want to modify the sed expression to remove 
all the spaces when you have more then one space after abc.

Mikkel
-- 

    Do not meddle in the affairs of dragons,
 for you are crunchy and taste good with ketchup.




-- 
redhat-list mailing list
unsubscribe mailto:[EMAIL PROTECTED]
https://listman.redhat.com/mailman/listinfo/redhat-list

Reply via email to