Archive for the ‘GREP Tools’ Category

how do i grep on a term with a $ in it such as $foo? i tried enclosing it in quotes but that doesn’t help

Monday, February 16th, 2009

Enclose the $ in square brackets [ .. ], that is, specify the special character as a character class. For example,

grep ‘[$]foo’ file.txt

Negation in regular expressions

Saturday, February 14th, 2009

How to search for lines that don’t contain a particular pattern is fairly easy in some programs, obscure in others, and almost impossible yet in others. That is, assuming your program of choice supports regular expressions. I review how to achieve this functionality in Perl, Vim, grep, and vi.

if I wanted to match ‘foo13245′, can I use grep ‘foo[\d]*’?

Wednesday, January 7th, 2009

Nope, \d has no meaning (unless using -P for PCRE). You need [[:digit:]] instead; i.e.,

grep 'foo[[:digit:]]*'

How can i search for files which contain string A but not string B ?

Tuesday, January 6th, 2009

Pipe the output of grep through grep -v. For example:

grep 'A' file | grep -v 'B'

Why grep ‘foo|bar’ file doesn’t work?

Monday, January 5th, 2009

The bar | has no special meaning in BRE (basic regular expressions). Use extended regular expressions (ERE) such as:

grep -E 'foo|bar' file


egrep 'foo|bar' file

In GNU grep, you can also force the spcial meaning of | by escaping it. E.g.,

grep 'foo\|bar' file

Is grep an acronym? Does it mean GNU Regular Expression P?

Sunday, January 4th, 2009

grep originated from ed command: g/re/p where re is a regular expression, g stands for globally, and p stands for print. So one could say grep is an acronym of “Global Regular Expression Print“.

Global Regular Expression Print Tools (grep variants)

Monday, February 25th, 2008

The UNIX grep utility marked the birth of a global regular expression print (GREP) tools. Searching for patterns in text is important operation in a number of domains, including program comprehension and software maintenance, structured text databases, indexing file systems, and searching natural language texts. Such a wide range of uses inspired the development of variations of the original UNIX grep. These variations range from adding new features, to employing faster algorithms, to changing the behaviour of pattern matching and printing.