Enclose the $ in square brackets [ .. ], that is, specify the special character as a character class. For example,
grep ‘[$]foo’ file.txt
Enclose the $ in square brackets [ .. ], that is, specify the special character as a character class. For example,
grep ‘[$]foo’ file.txt
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.
(more…)
Nope, \d has no meaning (unless using -P for PCRE). You need [[:digit:]] instead; i.e.,
grep 'foo[[:digit:]]*'
Pipe the output of grep through grep -v. For example:
grep 'A' file | grep -v 'B'
The bar | has no special meaning in BRE (basic regular expressions). Use extended regular expressions (ERE) such as:
grep -E 'foo|bar' file
or
egrep 'foo|bar' file
In GNU grep, you can also force the spcial meaning of | by escaping it. E.g.,
grep 'foo\|bar' file
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“.
Overview
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.
(more…)