Date: Thu, 12 Aug 2010 21:09:37 +0400 From: Anonymous <swell.k@gmail.com> To: freebsd-questions@FreeBSD.ORG Cc: jacks@sage-american.com Subject: Re: Grepping a list of words Message-ID: <867hjv92r2.fsf@gmail.com> In-Reply-To: <201008121644.o7CGiflh099466@lurza.secnetix.de> (Oliver Fromme's message of "Thu, 12 Aug 2010 18:44:41 %2B0200 (CEST)") References: <20100812153535.61549.qmail@joyce.lan> <201008121644.o7CGiflh099466@lurza.secnetix.de>
next in thread | previous in thread | raw e-mail | index | archive | help
Oliver Fromme <olli@lurza.secnetix.de> writes: > John Levine <johnl@iecc.com> wrote: > > > > % egrep 'word1|word2|word3|...|wordn' filename.txt > > > > > Thanks for the replies. This suggestion won't do the job as the list of > > > words is very long, maybe 50-60. This is why I asked how to place them all > > > in a file. One reply dealt with using a file with egrep. I'll try that. > > > > Gee, 50 words, that's about a 300 character pattern, that's not a problem > > for any shell or version of grep I know. > > > > But reading the words from a file is equivalent and as you note most > > likely easier to do. > > The question is what is more efficient. This might be > important if that kind of grep command is run very often > by a script, or if it's run on very large files. > > My guess is that one large regular expression is more > efficient than many small ones. But I haven't done real > benchmarks to prove this. BTW, not using regular expressions is even more efficient, e.g. $ fgrep -f /usr/share/dict/words /etc/group When using egrep(1) it takes considerably more time and memory.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?867hjv92r2.fsf>