Date: Mon, 07 Jul 2014 08:42:47 +0100 From: Arthur Chance <freebsd@qeng-ho.org> To: Polytropon <freebsd@edvax.de>, FreeBSD Questions <freebsd-questions@freebsd.org> Subject: Re: The name "grep" Message-ID: <53BA4F77.60907@qeng-ho.org> In-Reply-To: <20140707075443.d47ca06a.freebsd@edvax.de> References: <20140707075443.d47ca06a.freebsd@edvax.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On 07/07/2014 06:54, Polytropon wrote: > Sometimes I get a "nostalgic seizure", and when I do so, I read > one of my older books (which I have plenty of to choose from). > Yesterday's choice was "Keine Angst for UNIX" (no fear of UNIX) > by Christine Wolfinger, published 1991 by VDI Verlag Duesseldorf. > On page 173 I read something that I hadn't noticed yet (translated): > > grep: > global regular expression print > (combination of an editor command) > > So today I checked "man grep", but it doesn't mention it. Therefore > here are my questions, primarily aiming at "UNIX dinosaurs" and > historians on list - because you probably need to be either old > or interested in UNIX history in order to provide a substantial > opinion. :-) > > 1. Is the mentioned interpretation correct or at least acceptable? > > 2. Should the manpage mention it? > > In my opinion, "print lines matching a pattern" describes what > grep does, but not really what it means (or where the name of > the command comes from). Other manpages explain the name of the > command or provide background information so you can understand > why the particular name has been chosen, for example: > > sed = (s)tream (e)ditor (section NAME) > tar = manipulate (t)ape (ar)chives (section NAME) > awk = (A)ho, (W)einberger, (K)ernighan (section SEE ALSO) > dd = copy and convert (cc was taken by C compiler, but > not mentioned in the manpage; "common knowledge") > vi = visual editor (in contrast to ex; not mentioned) > > Should "man grep" contain a hint about "global regular expression > print" or something similar? > > From ancient memory circa 1980, probably suffering from bit rot: Before grep existed, to use ed to print lines in a file that match a particular regular expression ed $file g/re/p q where the "re" stands for the regular expression and you're applying the "p" (print) command to each line that matches it. When a newbie asked how to print matching lines in a file, you'd answer "grep" and show them the trick, and eventually the name got given to the grep program when it was written. I think the "global regular expression print" explanation is based on explaining what the original ed command did.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53BA4F77.60907>