Date: Wed, 17 Apr 2002 23:43:46 -0500 From: Dan Nelson <dnelson@allantgroup.com> To: "Jim C." <notjames@concon.homeip.net> Cc: Michael E Mercer <mmercer@nc.rr.com>, Taylor Dondich <thexder@lvcm.com>, questions@FreeBSD.ORG Subject: Re: More of a scripting question I guess. Message-ID: <20020418044346.GB21402@dan.emsphone.com> In-Reply-To: <1019106179.72577.32.camel@snafu.concon.homeip.net> References: <000901c1e678$bc14fa80$6600a8c0@penguin> <20020418015926.GI72244@dan.emsphone.com> <3CBE2F51.41E19E8A@nc.rr.com> <20020418023400.GJ72244@dan.emsphone.com> <1019106179.72577.32.camel@snafu.concon.homeip.net>
next in thread | previous in thread | raw e-mail | index | archive | help
In the last episode (Apr 18), Jim C. said: > On Wed, 2002-04-17 at 23:34, Dan Nelson wrote: > > In the last episode (Apr 17), Michael E Mercer said: > > > another way to do it is this with the same outcome: > > > > > > while read address ; do > > > somecommand $address > > > done < file.txt > > > > But that puts the input file at the end of the command, which makes it > > harder to see where the input is coming from, especially if you have a > > lot of stuff in your loop. > > But its still more resource intensive. If you pipe a huge file into > while the machine has to store that file into memory before processing > it whereas with the redirection it simply gets filtered straight into > the while loop line by line. No it doesn't; the 'read' command will pull one line at a time out of the pipe. The only extra overhead is the cost of sending your input file through the pipe. If you had done: lines=`cat myfile` for address in $lines ; do mycommand $address done , that does pull the whole input file into memory. -- Dan Nelson dnelson@allantgroup.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020418044346.GB21402>