Skip site navigation (1)Skip section navigation (2)
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>