[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Scripting question: the length limit of a list?



Richard Lyons <richard@the-place.net>:
>  On Thu, Nov 01, 2007 at 01:49:03PM -0700, Mike Bird wrote:
> > On Thursday 01 November 2007 13:07, Wei Chen wrote:
> > > I would like to write a bash script like the following one:
> > >
> > > for i in `some program that outputs a word list`
> > > do
> > >   echo $i
> > > done
> > >
> > > where the word list can be very very long. I wonder what is the upper bound
> > > limit of the length of word lists in "for" loop of a bash script, or
> > > does it only
> > > depend on the hardware (say, RAM)? Thank you in advance.
> > 
> > Assuming that the words are output one per line, something
> > like the following can handle lists of any size:
> > 
> > some program | while read i; do echo $i; done
> 
>  A wild thought, but if you want to count the words in the output can you
>  not pipe it to wc?  I haven't tried, this is just a thought...

Not wild at all.  Most *ix apps (of the commandline variety, at least)
are designed to expect input on their stdin if it's there.  wc's no
exception.  "some_program | wc -l" will give you the number of lines
of output produced by some_program.  Exercise for you: play around
with

     some_program | grep -c "some_string"

which does the same thing, but only on lines you want to know about.


-- 
Any technology distinguishable from magic is insufficiently advanced.
(*)    http://blinkynet.net/comp/uip5.html      Linux Counter #80292
- -    http://www.faqs.org/rfcs/rfc1855.html    Please, don't Cc: me.



Reply to: