This cheat sheet is intended to be a quick reminder for the main concepts involved in using the command line program grep and assumes you already understand its usage.
Search standard output (i.e. a stream of text)
$ grep [options] search_string
Search for an exact string in file:
$ grep [options] search_string path/to/file
Print lines in myfile.txt containing the string "mellon"
$ grep 'mellon' myfile.txt
Wildcards are accepted in filename.
| Option | Example | Operation | 
|---|---|---|
-i | 
grep -i ^DA demo.txt | Forgets about case sensitivity | 
-w | 
grep -w "of" demo.txt | Search only for the full word | 
-A | 
grep -A 3 'Exception' error.log | Display 3 lines after matching string | 
-B | 
grep -B 4 'Exception' error.log | Display 4 lines before matching string | 
-C | 
grep -C 5 'Exception' error.log | Display 5 lines around matching string | 
-r | 
grep -r 'cheatsheets.zip' /var/log/nginx/ | Recursive search (within subdirs) | 
-v | 
grep -v 'warning' /var/log/syslog | Return all lines which don't match the pattern | 
-e | 
grep -e '^al' filename | Use regex (lines starting with 'al') | 
-E | 
grep -E 'ja(s|cks)on' filename | Extended regex (lines containing jason or jackson) | 
-c | 
grep -c 'error' /var/log/syslog | Count the number of matches | 
-l | 
grep -l 'robot' /var/log/* | Print the name of the file(s) of matches | 
-o | 
grep -o search_string filename | Only show the matching part of the string | 
-n | 
grep -n "go" demo.txt | Show the line numbers of the matches | 
Please refer to the full version of the regex cheat sheet for more complex requirements.
| - | - | 
|---|---|
| . | Any character. | 
?             | 
Optional and can only occur once. | 
*             | 
Optional and can occur more than once. | 
+             | 
Required and can occur more than once. | 
| - | - | 
|---|---|
{n}           | 
Previous item appears exactly n times. | 
{n,}          | 
Previous item appears n times or more. | 
{,m}          | 
Previous item appears n times maximum. | 
{n,m}         | 
Previous item appears between n and m times. | 
| - | - | 
|---|---|
[:alpha:]    | 
Any lower and upper case letter. | 
[:digit:]    | 
Any number. | 
[:alnum:]    | 
Any lower and upper case letter or digit. | 
[:space:]     | 
Any whitespace. | 
| - | - | 
|---|---|
[A-Za-z]     | 
Any lower and upper case letter. | 
[0-9]         | 
Any number. | 
[0-9A-Za-z] | 
Any lower and upper case letter or digit. | 
^  | 
Beginning of line. | 
$  | 
End of line. | 
^$ | 
Empty line. | 
\< | 
Start of word. | 
\> | 
End of word. |