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.
Latest comments (17)
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!
Ohhhh, so that's how it is. I always thought it was meant to be "grab" but spelt in Ye Old English or something.
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):
Wow, that's useful, sure is easier to remember the command knowing what it means.
Let's listen to the guy (bwk) who was actually present when it was invented talk about Where GREP Came From.
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")
robots.thoughtbot.com/how-grep-got...
Appreciate ya clearing that up for me. :-)
What about the silver searcher?
I didn't know that one, I'm just discovering it. Thanks for mentioning it. I'll go check it out.
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.
Funny, I always thought it comes from data duplication and I never even checked...
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.
As a Windows guy transitioning to Linux, I find this fascinating indeed.
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!
Wow, I had no idea, thanks for sharing!
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. 😄