loading...
Cover image for The history behind "grep"'s name

The history behind "grep"'s name

hamza profile image Hamza Tamenaoul Updated on ・1 min read

Originally posted in my portfolio.

grep, a tool that is widely used in the Unix world, a tool that no one could live without. It's one of the first command to which every linux beginner is introduced from its start, so its function is no secret to no one. However, what's the history behind its weird name ?

The answer to this question requires us to go back to the early days of Unix, days of resource scarcity, may they be processing power or memory resources. Software developper of the time had to play by the rules and develop very light programs that get the job done. And one of those tools was the ed text editor. But this editor is nothing like the modern editor we have today (VIM looks like JetBrains IDEs next to it). To see a line of text from the text buffer you needed to type p preceeded by the line number. And for searching the buffer for an occurence of a regular expression we could use like in VIM /regularexpression. But for us to search for all the occurences and print them we'll use g/regularexpression/p, written simply g/re/p. And that's how the world grep was born.

The history of Unix is full of these stories. Amazing stories about those early days of computing.

Posted on by:

hamza profile

Hamza Tamenaoul

@hamza

A software and information systems engineering student

Discussion

markdown guide
 

Nice, I didn't know that one :-)
In the same vein, I was taught the story about 'dd' in school : the program makes a 'Carbon Copy' of a file. But 'cc' was already taken by the 'C Compiler'.
Not sure about the authenticity of the story, though.

 

It's the same thing I've heard from a "GOTO 2013" talk. Giving the history of unix naming, it's very likely this is what happened.

 

Funny, I always thought it comes from data duplication and I never even checked...

 

Haha, as an absolute beginner, I really appreciate this one. I'm taking the Command Line Crash Course in Learn Python The Hard Way and have a bunch of flash cards with different commands on them, grep included.

Anyway, I think I get the "p" part and "re" ... but, what's the deal with "g"?

 

g matches all lines ("global")

In general, to see all lines matching the regular expression “re”, use g/re/p.

robots.thoughtbot.com/how-grep-got...

 
 

Nice, need to utilize this tool more!

Just wanted to share this link:
Where GREP came from

It's a video of Brian Kernighan, a close colleague of Ken Thompson, explaining how grep came to be; it's pretty interesting because he mentions that Ken created grep overnight!

 

That's an interesting fact, thanks for sharing. I've never asked myself what grep could mean, I should start doing it more often when I use my CLI!

 

Ha! I never bothered to look this up. I feel like I would have understood its purpose much better as a newbie had I been taught this off the bat. 😄

 

Wow, I had no idea, thanks for sharing!

 

Ohhhh, so that's how it is. I always thought it was meant to be "grab" but spelt in Ye Old English or something.

 

Wow, that's useful, sure is easier to remember the command knowing what it means.

 

As a Windows guy transitioning to Linux, I find this fascinating indeed.

 

Let's listen to the guy (bwk) who was actually present when it was invented talk about Where GREP Came From.

 
 

I didn't know that one, I'm just discovering it. Thanks for mentioning it. I'll go check it out.

 

If anyone wants to know more about this, there's a great video interview on grep's existence from Brian Kernighan (he contributed towards creating Unix):