Grep
Searches input files selecting line to match patterns with
grep [opts] [re] [file]
grep jorge test.txt
#same as
grep "jorge" test.txt
Use \
to escape characters
Search Directory
grep -r "\"Help.*me\"" .
Count number of lines with the word test in it
grep -r phone . | wc -l
Some Options
Flag
Does
-o
only print matching part of line
-n
output line #s too
-r
search recursively subdirs
-i
case insensitive
-v
select the non-matching lines
-E
Use extended grep(see below)
-F
Fixed string matching(faster if not re)
-C [n]
n lines shown b4 and after match
Extended Grep
Allows you to do stuff like specific or ranges of repetitions
Not
grep -E "1[^2]" #1 followed by not two
Range
grep -E "a{4}" #4 a's
grep -E ">[0-9]{10,16}<" #10-16 digit number between > and <
Or
grep -E '(^| )ABC( |$)' file1 #ABC surrounded by a space or ending
Other Tools
https://beyondgrep.com/feature-comparison/
ack, ag, git grep, ripgrep
Last updated