Hi, this results in the same error message!
regards, hampel Am Son, 2003-03-16 um 18.20 schrieb Cowles, Steve: > > -----Original Message----- > > From: Kleiner Hampel > > Sent: Sunday, March 16, 2003 10:41 AM > > Subject: Re: shell script - expert question > > > > > > 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 > > Single quotes ' are treated literally by the shell interpreter. i.e. no > filename expansion. With double quotes, your variables are expanded prior to > being used. So... > > for i in * ; do > mv "$i" `echo "$i" | sed -e 's/abc//'` > done > > Note: Your example has not dealt with filenames that do NOT contain spaces. > > Steve Cowles -- redhat-list mailing list unsubscribe mailto:[EMAIL PROTECTED] https://listman.redhat.com/mailman/listinfo/redhat-list