Xref: utzoo comp.unix.wizards:9056 comp.unix.questions:7364
Path: utzoo!utgpu!water!watmath!clyde!att!pacbell!ames!mailrus!husc6!cca!mirror!rayssd!raybed2!linus!jjg
From: jjg@linus.UUCP (Jeff Glass)
Newsgroups: comp.unix.wizards,comp.unix.questions
Subject: Re: grep replacement
Message-ID: <33326@linus.UUCP>
Date: 1 Jun 88 14:44:18 GMT
References: <7882@alice.UUCP> <5630@umn-cs.cs.umn.edu> <6866@elroy.Jpl.Nasa.Gov> <4524@vdsvax.steinmetz.ge.com> <1036@cfa.cfa.harvard.EDU> <470@q7.tessi.UUCP>
Reply-To: jjg@linus.UUCP (Jeff Glass)
Organization: The MITRE Corporation, Bedford MA
Lines: 22

In article <470@q7.tessi.UUCP> joey@tessi.UUCP (Joe Pruett) writes:
> >grep '(your_pattern_here)' | head -1
> 
> This works, but is quite slow if the input to grep is large.  A hack
> I've made to egrep is a switch of the form -.  This causes only
> the first  matches to be printed, and then the next file is
> searched.  This is great for:
> 
> egrep -1 ^Subject *
> 
> in a news directory to get a list of Subject lines.

Try:

	sed -n -e '/pattern/{' -e p -e q -e '}' filename

This prints the first occurrence of the pattern and then stops searching
the file.  The generalizations for printing the first  matches and
searching  files (where n,m > 1) are more awkward (no pun intended)
but are possible.

/jeff