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

Popular posts from this blog

AWK : Commands

CURL Commands