grep Favorites
Recursive with Line Numbers
grep -rn "pattern" /path/
Show Context (Before/After)
# 3 lines before and after
grep -C 3 "error" logfile.txt
# 5 lines before
grep -B 5 "error" logfile.txt
# 5 lines after
grep -A 5 "error" logfile.txt
Case Insensitive
grep -i "error" file.txt
Invert Match (Lines NOT Matching)
grep -v "debug" logfile.txt
Count Matches
grep -c "error" logfile.txt
Files Containing Match Only
grep -l "pattern" *.txt
Files NOT Containing Match
grep -L "pattern" *.txt
Extended Regex (ERE)
grep -E "error|warning|critical" logfile.txt
Word Boundary Match
grep -w "error" file.txt # matches "error" not "errors"
Multiple Patterns from File
grep -f patterns.txt file.txt
Exclude Directories
grep -r --exclude-dir={.git,node_modules} "pattern" .
Exclude Files by Pattern
grep -r --exclude="*.log" "pattern" .
Include Only Specific Files
grep -r --include="*.py" "import" .
Show Only Matched Part
grep -o "error[0-9]*" file.txt
Quiet Mode (Exit Code Only)
if grep -q "pattern" file.txt; then
echo "Found"
fi
Binary Files as Text
grep -a "pattern" binary-file