Grep

=Basics=

Match regular expression in files grep "lines.*empty" demo_file

=One-Liners=

Case insensitive search grep -i "the" demo_file

Checking for full words, not for sub-strings grep -iw "is" demo_file

Display N lines after match grep -A 3 -i "example" demo_text

Display N lines before match grep -B 2 "single WORD" demo_text

Display N lines around match grep -C 2 "Example" demo_text

Color Filtered Output grep "Gecko" /data --color=always

Highlighting the search using GREP_OPTIONS export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'

Searching in all files recursively grep -r "ramesh" *

Invert match grep -v "go" demo_text

Display the lines which does not matches all the given pattern grep -v -e "a" -e "b" -e "c" test-file.txt

How many lines matches the given pattern grep -c "go" demo_text grep -c this demo_file

How many lines that does not match the pattern grep -v -c this demo_file

Display only the file names which matches the given pattern grep -l this demo_*

Show only the matched string grep -o "is.*line" demo_file

Show line number while displaying the output grep -n "go" demo_text

Filter comments from a config file grep -vE '^#|^;|^$' server.conf

Search for "virus" in all files in a dir grep virus /etc/snort/rules/*

Search this or that using Extended Regex grep -E '(then|there)' demo_text

Search this or that without Extended Regex grep '\(then\|there\)' demo_text

Search this or that grouping not necessary grep 'then\|there' demo_text

Search this or that grouping required grep 'the\(n\|re\)' demo_text

Search Email addresses using regex grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" filename.txt

Grep from compressed files zgrep -I "free space" ./messages*