The name "grep"
Arthur Chance
freebsd at qeng-ho.org
Mon Jul 7 07:43:00 UTC 2014
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.
More information about the freebsd-questions
mailing list