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. |