Hi,
tricky!
But what is about:
${var##string}
${var%string}
${var%%string
What means the double #, the single and double #?
Please explain me in some words! Thanks!
Is there a man page with this information?
regards,
hampel
Am Son, 2003-03-16 um 18.25 schrieb Robert P. J. Day:
> On Sun, 16 Mar 2003, Cowles, Steve wrote:
>
> > > -----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.
>
> rather than going to the trouble of firing up "sed", you can use
> the pattern-matching operators built into the shell:
>
> ${var#string} # discard shortest prefix matching "string"
>
> as in,
>
> ${i#abc}
>
> will return the string corresponding to the contents of $i,
> with a prefix of "abc" deleted. if the prefix isn't "abc",
> no change.
>
> check out:
>
> ${var#string}
> ${var##string}
>
> ${var%string}
> ${var%%string
>
>
> rday
>
> p.s. just to clarify, you would do:
>
> mv "$i" "${i#abc}"
>
> p.p.s. note that "string" in all of the above can be a
> wildcard pattern as well, making it really powerful.
--
redhat-list mailing list
unsubscribe mailto:[EMAIL PROTECTED]
https://listman.redhat.com/mailman/listinfo/redhat-list