Linux grep Command Cheat Sheet

The grep command is used for searching text and patterns in files and command output. It supports regular expressions, case-insensitive search, recursive search, and more.

Basic grep Usage

Command Description
grep “word” file.txt Search for “word” in file.txt.
grep -i “word” file.txt Case-insensitive search.
grep -w “word” file.txt Match whole word only.
grep -n “word” file.txt Show line numbers with matches.
grep -c “word” file.txt Count occurrences of “word”.
grep -v “word” file.txt Show lines that do NOT contain “word”.

Example: Case-insensitive search for “error” in a log file

grep -i "error" /var/log/syslog

Searching in Multiple Files

Command Description
grep “word” file1.txt file2.txt Search in multiple files.
grep -l “word” *.txt Show only filenames containing “word”.
grep -r “word” /path/to/dir Recursively search inside all files in a directory.
grep -Rl “word” /path/to/dir List filenames with matches (no content).

Example: Recursively find “TODO” comments in code

grep -r "TODO" ~/projects/

Using Regular Expressions

Command Description
grep “^word” file.txt Find lines starting with “word”.
grep “word$” file.txt Find lines ending with “word”.
grep “[0-9]” file.txt Find lines containing numbers.
grep “error.*warning” file.txt Match “error” followed by “warning”.
`grep -E “error fail” file.txt`

Example: Find lines that contain “log” at the beginning

grep "^log" logfile.txt

Filtering Command Output

Command Description
`ps aux grep “firefox”`
`ls -l grep “^d”`
`df -h grep “/dev/sd”`
`cat file.txt grep -v “^#”`

Example: Find all processes related to “apache”

ps aux | grep "apache"

Grep with Context (Surrounding Lines)

Command Description
grep -A 3 “error” file.txt Show 3 lines after each match.
grep -B 3 “error” file.txt Show 3 lines before each match.
grep -C 3 “error” file.txt Show 3 lines before & after match.

Example: Show errors with 2 lines of surrounding context

grep -C 2 "error" logfile.txt

Advanced Grep Techniques

Command Description
grep -o “[0-9]\+” file.txt Extract only numbers from a file.
`grep -E “ERROR WARN” logfile.txt`
grep –color=auto “pattern” file.txt Highlight matched text.
grep -P “\d{3}-\d{2}-\d{4}” file.txt Find social security numbers (-P for Perl regex).

Example: Extract email addresses from a file

grep -E "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}" emails.txt

Saving and Redirecting Grep Output

Command Description
grep “error” logfile.txt > errors.txt Save results to a file.
grep “error” logfile.txt >> errors.txt Append results to a file.
`grep “error” logfile.txt tee errors.txt`

Example: Save all warning messages to “warnings.log”

grep "WARNING" /var/log/syslog > warnings.log

Summary

Feature Command Example
Basic Search grep “word” file.txt
Case Insensitive grep -i “word” file.txt
Recursive Search grep -r “word” /path/to/dir
Show Line Numbers grep -n “word” file.txt
Search Multiple Patterns `grep -E “error
Show Before/After Context grep -C 3 “error” file.txt
Extract Numbers grep -o “[0-9]\+” file.txt

 

This Linux grep Cheat Sheet will help you find text efficiently in files, logs, and command output.

Related posts

Linux curl Cheat Sheet

Linux apt Cheat Sheet

Linux wget Cheat Sheet