Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Oct 2001 13:56:35 +0200
From:      Stijn Hoop <stijn@win.tue.nl>
To:        "Daniel C. Sobral" <dcs@newsguy.com>
Cc:        "Eugene L. Vorokov" <vel@bugz.infotecs.ru>, freebsd-hackers@freebsd.org
Subject:   Re: how to make 'for' understand two words as a single argument
Message-ID:  <20011001135635.A39309@pcwin002.win.tue.nl>
In-Reply-To: <3BB855BB.D10C5030@newsguy.com>; from dcs@newsguy.com on Mon, Oct 01, 2001 at 08:38:35AM -0300
References:  <200110011039.f91AdOD88292@bugz.infotecs.ru> <3BB855BB.D10C5030@newsguy.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Oct 01, 2001 at 08:38:35AM -0300, Daniel C. Sobral wrote:
> "Eugene L. Vorokov" wrote:
> > 
> > I have a script which is supposed to convert all filenames to lowercase
> > recursively from current directory. It looks like:
> > 
> > echo "Processing files"
> > for i in `ls |grep [A-Z]`; \
> >     do mv $i `echo $i |tr [A-Z] [a-z]`; echo $i;\
> >     done;
> > for i in `find . -name "*" -type d -maxdepth 1`;\
> >     do if [ $i != "." ]; then cd $i; echo "Processing sub-dir $i"; $0; cd ..; fi \
> >     done;
> > 
> > It works fine unless some file or directory has a space in it's name.
> > It this case each word is interpreted as a separate argument by 'for'
> > and script doesn't find files.
> 
> Any way using `` won't work. for i in a "b c" d works, for instance, but
> there is not way that I know of that you can control the output this way
> using ``.

Yes there is: set IFS to only contain a newline beforehand. That's my local
hack, your way is probably better :)

--Stijn

-- 
"I used to think I was indecisive, but now I'm not so sure."

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011001135635.A39309>