Hacker News new | past | comments | ask | show | jobs | submit login
How grep got its name (thoughtbot.com)
186 points by milesf on July 29, 2010 | hide | past | favorite | 50 comments



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


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


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_...


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.


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


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


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.



lol

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


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.


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.


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.


How does the OED define grep?


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


The use of Grok in English is embiggening.


There may be some truthiness in that.


...it's a perfectly cromulent word.


Agreed.


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

People look at me funny when I point that out.


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


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


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


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


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....


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)


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


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


grep = Global Regular Expression Print

awk = Administrator's Wisdom Kit

sed = Stream EDitor.


66% correct:

awk = Aho, Weinberger, Kernighan


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.


But GNU is not Unix.


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


agreed on the RMS propaganda stuff.

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


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


GNU's rep existed previously


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


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


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


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.


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.


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.


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.


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.


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...


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



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


"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. :-)


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


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




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: