GREP Command
Grep Command GREP -- stands for Global Regular Expression Parser
searching for a word in a file
grep 200 filename
example I am searching for string "ravana" in the file
$ grep ravana data.txt
Ravana 9309080497 ravana@gmail.com Newzealand
Ravana 9309080497 ravana@gmail.com Newzealand
You can also use "" to look for the content
$ grep "ravana" data.txt
Ravana 9309080497 ravana@gmail.com Newzealand
Ravana 9309080497 ravana@gmail.com Newzealand
Ravana 9309080497 ravana@gmail.com Newzealand
Searching data in more than one file.
grep "john" filename1 filename2
$ grep "ravana" data.txt info.txt
data.txt:Ravana 9309080497 ravana@gmail.com Newzealand
data.txt:Ravana 9309080497 ravana@gmail.com Newzealand
data.txt:Ravana 9309080497 ravana@gmail.com Newzealand
info.txt:Ravana 9309080497 ravana@gmail.com Newzealand
info.txt:Ravana 9309080497 ravana@gmail.com Newzealand
info.txt:Ravana 9309080497 ravana@gmail.com Newzealand
file name is displayed from which file it is getting listed down.
With Line numbers
$ grep -n "ravana" info.txt data.txt
info.txt:27:Ravana 9309080497 ravana@gmail.com Newzealand
info.txt:28:Ravana 9309080497 ravana@gmail.com Newzealand
info.txt:29:Ravana 9309080497 ravana@gmail.com Newzealand
info.txt:30:Ravana 9309080497 ravana@gmail.com Newzealand
info.txt:31:Ravana 9309080497 ravana@gmail.com Newzealand
info.txt:32:Ravana 9309080497 ravana@gmail.com Newzealand
info.txt:33:Ravana 9309080497 ravana@gmail.com Newzealand
info.txt:34:Ravana 9309080497 ravana@gmail.com Newzealand
data.txt:27:Ravana 9309080497 ravana@gmail.com Newzealand
data.txt:28:Ravana 9309080497 ravana@gmail.com Newzealand
data.txt:29:Ravana 9309080497 ravana@gmail.com Newzealand
data.txt:30:Ravana 9309080497 ravana@gmail.com Newzealand
data.txt:31:Ravana 9309080497 ravana@gmail.com Newzealand
data.txt:32:Ravana 9309080497 ravana@gmail.com Newzealand
data.txt:33:Ravana 9309080497 ravana@gmail.com Newzealand
data.txt:34:Ravana 9309080497 ravana@gmail.com Newzealand
Search data in all files in the current directory
If you want to search for "USA" in all files in a directory
$ grep USA *.*
Search data by Ignoring Case
use -i -- which mean Case Insensitive
grep -i USA *.*
or
grep -i usa *.*
Search data display line number -- we have seen this above already
Search Data: Display filename where it is found
grep -i -l she *.* // The -l command tells you which are the files were you have word "she"
Search for an exact word : Match exact word
$ grep -w -i john filename
or
$ grep -w -i john *.*
Numbers it is the same logic
$ grep -w 38 filename
Search data by ignoring the given text
$ grep -i -v "she" filename - v tells to reverse to remove she and display all others
Search data count number of matches
$ grep -c -i ravana data.txt // -c tells you the count of how many time text "ravana" appears in the f
$ grep -i -c ravana data.txt
8
Search Data : Display surrounding lines
It displays previous two lines or the next two lines
$ grep -i -n -B 4 ravana filename //B stands for Before the text result - display 4 lines before the search result
$ grep -i -n -A 4 ravana filename //A stands for After the text result - display 4 lines before the search result
$ grep -i -n -C 4 ravana filename //C means both before and after
Searching Data for Multiple contents
$ grep -i -e "ravana" -e "sreejith" filename
$ grep -i -e "ravana" -e "sreejith" data.txt
Sreejith 7898980090 sreejith.sbk@gmail.com London
Sreejith 7898980090 sreejith.sbk@gmail.com London
Sreejith 7898980090 sreejith.sbk@gmail.com London
Sreejith 7898980090 sreejith.sbk@gmail.com London
Sreejith 7898980090 sreejith.sbk@gmail.com London
Sreejith 7898980090 sreejith.sbk@gmail.com London
Sreejith 7898980090 sreejith.sbk@gmail.com London
Sreejith 7898980090 sreejith.sbk@gmail.com London
Ravana 9309080497 ravana@gmail.com Newzealand
Ravana 9309080497 ravana@gmail.com Newzealand
Ravana 9309080497 ravana@gmail.com Newzealand
Ravana 9309080497 ravana@gmail.com Newzealand
Searching multiple data with egrep
egrep - extended grep
$ egrep -i 'ravana|sreejith' data.txt
Sreejith 7898980090 sreejith.sbk@gmail.com London
Sreejith 7898980090 sreejith.sbk@gmail.com London
Sreejith 7898980090 sreejith.sbk@gmail.com London
Sreejith 7898980090 sreejith.sbk@gmail.com London
Sreejith 7898980090 sreejith.sbk@gmail.com London
Sreejith 7898980090 sreejith.sbk@gmail.com London
Sreejith 7898980090 sreejith.sbk@gmail.com London
Sreejith 7898980090 sreejith.sbk@gmail.com London
Ravana 9309080497 ravana@gmail.com Newzealand
Ravana 9309080497 ravana@gmail.com Newzealand
Ravana 9309080497 ravana@gmail.com Newzealand
If you want to search somerthing in a file
grep -i 2000 <file_name>
grep -i 2000 <file_name> > result.txt
$ head -n 10 movies.txt | grep 2010
Search in process result
// this will display only those process that have the keywork monitor in them
ps -ef | grep monitor
Display only specific file or folder
ls -l | grep -i Folder // -i says ignore case -- non case sensitive.
Display results of USA and Baker County
grep -i USA <file_name> | grep -i Baker
Comments
Post a Comment