Hacker Newsnew | comments | ask | jobs | submitlogin
How grep got its name (thoughtbot.com)
182 points by milesf 41 days ago | comments




78 points by judofyr 41 days ago | link

Wait, what? As a non-native speaker of English, I've always assumed that "grep" is a normal English verb.

reply

54 points by pg 41 days ago | link

That's very funny. It's actually starting to be now.

reply

10 points by judofyr 41 days ago | link

I've always connected it with "grip" (and the Norwegian translation: "gripe"). /usr/bin/grep runs through STDIN and "grips" the matching lines, while everything else flows through and disappear. That totally made sense in my head…

EDIT:

In December 2003, the Oxford English Dictionary Online added draft entries for "grep" as both a noun and a verb.http://en.wikipedia.org/wiki/Grep#Usage_as_a_conversational_...

reply

1 point by ElbertF 41 days ago | link

I made similar connection, in Dutch the word "grijp" (which sounds a bit like "grep") means "grab". I figured "grep" is to "grab" stuff from a file.

reply

19 points by mhd 41 days ago | link

In certain circles. Probably the same that would also recognize "grok".

reply

26 points by judofyr 41 days ago | link

You're telling me that "grok" isn't a normal English verb either? What a sad day :-(

reply

13 points by ColinDabritz 41 days ago | link

https://secure.wikimedia.org/wikipedia/en/wiki/Grok

Grok is a term from Robert A. Heinlein's book "Stranger in a strange land."

I can see why finding out that these amazing words are not 'official' English could make you sad, but for me I find it amazing and encouraging, as this is exactly the way that some language is formed! They are so full of future potential.

I look forward to seeing what terms 'make it' into major dictionaries in the future.

reply

6 points by sesqu 41 days ago | link

http://ars.userfriendly.org/cartoons/?id=20100124

reply

-1 points by Groxx 41 days ago | link

lol

(edit: oh come on, you know it'll end up in there eventually!)

reply

7 points by btilly 41 days ago | link

Interestingly grok was originally a noun! It means "water".

People look at me funny when I point that out.

reply

1 point by jf 40 days ago | link

For shame! It makes perfect sense if you've read "Stranger in a Strange Land"

reply

9 points by mhd 41 days ago | link

Considering the rather eclectic nature of the English vocabulary, is there such a thing as a "normal" verb? Grok is exactly the same level as brobdingnagian, i.e. perfectly cromulent.

reply

6 points by pjscott 41 days ago | link

According to the Oxford English Dictionary, both grep and grok are English verbs. I'm happy about this, since the OED is about as official as you can get.

reply

1 point by ig1 41 days ago | link

I used to do research for the OED and generally if there's evidence that a verb is common in the field (used in magazines, books, etc. by multiple authors and not just in reference to it's original usage) then the OED is willing to include it.

If there's a term that you think matches that criteria but isn't included you can gather up some relevent citations and send them in and they'll consider it for addition.

To get a transparent look at how they do this kind of thing have a look at:

http://www.jessesword.com/sf/

The OED ran an open research project to gather evidence of science fiction terms as they figured the online SF community would be much better at finding this evidence than their own researchers.

reply

3 points by jackowayed 41 days ago | link

How does the OED define grep?

reply

3 points by gmac 41 days ago | link

grep, n. Computing. A Unix command used to search files for the occurrence of a string of characters that matches a specified sequence or pattern, and to output all the lines matching this. Also grep command.

grep, v. Computing. 1. intr. To search for a string of characters using the grep command. Also trans.: to search (a file) in this way. 2. trans. slang (usu. humorous). Of a person: to search; to scan visually.

Both marked: DRAFT ENTRY June 2010

reply

5 points by sabat 41 days ago | link

The use of Grok in English is embiggening.

reply

3 points by mhd 41 days ago | link

There may be some truthiness in that.

reply

3 points by cag_ii 41 days ago | link

...it's a perfectly cromulent word.

reply

1 point by cromulent 39 days ago | link

Agreed.

reply

5 points by danh 41 days ago | link

That just goes to show that normal English is highly unusual.

reply

2 points by ars 41 days ago | link

It was coined in the book Stranger in a Strange Land by Robert A. Heinlein.

reply

2 points by jawngee 41 days ago | link

I always thought it was some clever twist on "grope".

reply

12 points by strlen 41 days ago | link

There goes my theory about grep, awk, sed being named after digestive noises.

What's interesting is the history of dd and its completely non-UNIX like argument format e.g., if=/dev/null of=./foo bs=4k: the latter was designed as a prank mocking IBM's mainframe OSes (today's equivalent would be making a FactoryFactory in Python, I'd imagine)

reply

1 point by caf 41 days ago | link

Sadly, having had to wrestle with a surly TSM installation, I can report that IBM tools still use this argument style.

reply

1 point by Groxx 41 days ago | link

A much more amusing theory than reality. "perl" could fit in that category too...

reply

1 point by epochwolf 41 days ago | link

grep = Global Regular Expression Print

awk = Administrator's Wisdom Kit

sed = Stream EDitor.

reply

17 points by SwellJoe 41 days ago | link

66% correct:

awk = Aho, Weinberger, Kernighan

reply

25 points by nuxi 41 days ago | link

From Early history of UNIX: "When asked what that funny name meant, Ken said it was obvious. It stood for the editor command that it simulated, g/re/p (global regular expression print)."

http://massis.lcs.mit.edu/archives/history/early.history.of....

reply

7 points by spicyj 41 days ago | link

Wow, I was thinking about this just this morning. I assumed it stood for "GNU regular expression parser" or something like that, even though that doesn't really make sense.

reply

17 points by presidentender 41 days ago | link

But GNU is not Unix.

reply

3 points by jff 40 days ago | link

Don't fall victim to RMS's propaganda--as another poster pointed out, grep, ed, sed, awk, etc. all predate GNU's braindamaged implementations.

reply

1 point by ithkuil 34 days ago | link

agreed on the RMS propaganda stuff.

But I'm sincerely interested to know why you say that their implementations are braindamaged.

reply

2 points by graywh 41 days ago | link

But grep (written for Unix) is older than GNU.

reply

1 point by MaysonL 39 days ago | link

GNU's rep existed previously

reply

4 points by aristus 41 days ago | link

Extra credit: how did glob get its name? I've never found an explicit answer, but the Unix 71 manual suggests that it's short for "global".

http://cm.bell-labs.com/cm/cs/who/dmr/man71.pdf

reply

1 point by ori_b 41 days ago | link

Glob was already a word. Dictionary.com claims it dates back to about 1900, and might come from the blending of "globe" and "blob"

reply

1 point by sprout 41 days ago | link

That's one place where plain English works fine. Glob matches a glob of characters.

reply

6 points by bluesmoon 41 days ago | link

strange, I'd always thought that everyone already knew this. It's mentioned in "Mastering Regular Expressions" and also in "Sed and Awk".

reply

2 points by duck 41 days ago | link

More about ed - http://en.wikipedia.org/wiki/Ed_(text_editor)

It was one of the first end-user programs hosted on the system and has been standard in Unix-based systems ever since. ed was originally written by Ken Thompson and contains one of the first implementations of regular expressions. ... Famous for its terseness, ed gives almost no visual feedback. For example, the message that ed will produce in case of error, or when it wants to make sure the user wishes to quit without saving, is "?". It does not report the current filename or line number, or even display the results of a change to the text, unless requested.

reply

3 points by bluesmoon 41 days ago | link

One of the reasons ed is so terse is because bandwidth was really expensive back when it was written. Not necessarily in terms of money (since everyone was at a university), but in terms of time.

If your editor were to echo back everything you'd typed, you'd waste twice the bandwidth (once to send a keystroke in and once to get it echoed back). Though in reality it would be more like 4 times because each character sent through would require a TCP-ACK packet sent back. By saying nothing, ed became really fast.

sed took things to the next level. If you already had a file on a remote system, and wanted to make changes to it, all you had to do was note down the 'ed' commands to make those changes, and then tell sed to run them. You didn't have to open ed to operate on the file, you just had to send your commands over the network and sed would operate on the file remotely. A more efficient rsync, if you will.

reply

7 points by mturmon 41 days ago | link

ed preceded TCP (first ed manual I could find is dated 1971; the first TCP research paper was by Cerf and Kahn in 1974).

When ed was used, it would be common to interact with the computer on a teletype, not even on a crt monitor. So a response meant printing characters on paper.

sed was and is more about programmatic editing (i.e., editing a stream as it was generated, using a script for commands), or editing of large files that would overwhelm system memory, not about some kind of remote usage the way you're describing.

reply

2 points by enf 41 days ago | link

It wasn't network bandwidth actually, it was printing speed. When your terminal can only print ten characters per second, terseness is even more of a virtue than it is on a slow network.

reply

4 points by rudin 41 days ago | link

I think everyone should spend an evening trying to write in ed. Knowing that most of unix was written in this simple editor shows the power of tight constraints in design decisions and the creativity that can come from them. It also makes the whole cascade of editors ed/vi/vim/... more understandable.

reply

3 points by coliveira 41 days ago | link

I did this exercise, and to tell the truth, it works better than "normal" editors for some tasks. For example, fixing bugs from a C compilation, checking a particular line, finding some structure on file based on regular expressions.

Nowadays, I use ed regularly whenever possible. I even wrote a blog post on my experiments:

http://coliveira.net/software/using-ed-the-standard-unix-edi...

reply

2 points by wazoox 41 days ago | link

However ed is actually easier to use on a true teletype, where everything you print is actually... printed.

reply

3 points by cag_ii 41 days ago | link

Even more about Ed: http://www.gnu.org/fun/jokes/ed.msg.html

reply

2 points by mahmud 41 days ago | link

OT: but those ThoughtBot people know how to make beautiful websites.

reply

1 point by ralph 39 days ago | link

"ed was a command-line editor that worked identically to the colon-commands in vi and vim—in fact, you can press Q to get into ed mode (then type vi to get back into vim)."

This is wrong. Pressing Q in vi quits visual mode and returns you to ex(1). ex(1) precedes vi(1) and was an extended editor, based on ed(1). That's why the commands are similar, but not identical. And ed(1) isn't dead, it still is a command-line editor. :-)

reply

1 point by code_duck 41 days ago | link

That's interesting. I recall ed from the Amiga...

reply




Lists | RSS | Search | Bookmarklet | Guidelines | FAQ | News News | Feature Requests | Y Combinator | Apply | Library

Analytics by Mixpanel