$ curl cheat.sh/
# To search a file for a pattern:
grep <pattern> <file>

# To perform a case-insensitive search (with line numbers):
grep -in <pattern> <file>

# To recursively grep for string <pattern> in <dir>:
grep -R <pattern> <dir>

# Read search patterns from a file (one per line):
grep -f <pattern-file> <file>

# Find lines NOT containing pattern:
grep -v <pattern> <file>

# To grep with regular expressions:
grep "^00" <file>                                               # Match lines starting with 00
grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" <file> # Find IP add

# To find all files that match <pattern> in <dir>
grep -rnw <dir> -e <pattern>

# To exclude grep from your grepped output of ps:
# (Add [] to the first letter. Ex: sshd -> [s]shd)
ps aux | grep '[h]ttpd'

# Colour in red {bash} and keep all other lines
ps aux | grep -E --color 'bash|$'

# grep
# Matches patterns in input text.
# Supports simple patterns and regular expressions.

# Search for a pattern within a file:
grep search_pattern path/to/file

# Search for an exact string:
grep -F exact_string path/to/file

# Search for a pattern [R]ecursively in the current directory, showing matching line [n]umbers, [I]gnoring non-text files:
grep -RIn search_pattern .

# Use extended regular expressions (supporting `?`, `+`, `{}`, `()` and `|`), in case-insensitive mode:
grep -Ei search_pattern path/to/file

# Print 3 lines of [C]ontext around, [B]efore, or [A]fter each match:
grep -C|B|A 3 search_pattern path/to/file

# Print file name with the corresponding line number for each match:
grep -Hn search_pattern path/to/file

# Use the standard input instead of a file:
cat path/to/file | grep search_pattern

# Invert match for excluding specific strings:
grep -v search_pattern

Follow @igor_chubin cheat.sh