!!Unix / Linux search command utility
!Usage:
{{{
grep [options] regexp [file...]
Options:
-v show lines that don't match instead of lines that match
-H print file names with matches
-i ignore case
-E enable extended regular expressions
-c print count only
-l just print the names of files that have matches
-n print line numbers
-r recurse into sub-directories
-a treat files as ascii
}}}
!Extended regular expressions (i.e. -E). Those allowed in basic, non-extended mode too are marked with (B):
Matching characters
{{{
. match any character (B)
^ matches beginning of line (B)
$ matches end of line (B)
[abc] matches 'a', 'b', or 'c' (B)
[^abc] matches anything except 'a', 'b', or 'c' (B)
[a-e] range match, same as [abcde] (B)
[[:x:]] match pre-defined class of characters as follows: (B)
:alnum:
:alpha:
:digit:
:lower:
:upper:
:space:
\w same as [[:alnum:]]
\W same as [^[:alnum:]]
\X if X is a regular expression character then \X will cause a
match with the actual character and not the special meaning
of the character
}}}
Repeating characters
{{{
* preceding item matched zero or more times (B)
? preceding item matched 0 or 1 time
+ preceding item matched one or more times
}}}
Grouping and Referencing
{{{
() groups are surrounded with parenthesis
\n backslash with a number n references the n'th grouping
}}}
Alternation
{{{
e1|e2 matches expression e1 OR e2
}}}