Upload
chinkshady
View
1.430
Download
1
Embed Size (px)
DESCRIPTION
Citation preview
35 53Like
HomeAboutFree eBookArchivesBest of the BlogContact
15 Prac(cal Grep Command Examples In Linux / UNIXby SathiyaMoorthy on March 26, 2009
TweetTweet 36
Photo courtesy of Alexôme’s
You should get a grip on the Linux grep command.
This is part of the on-‐going 15 Examples series, where 15 detailed examples will be provided for a specific command or funcQonality. Earlier we discussed 15 pracQcal examples for Linux find command, Linux command line history and mysqladmin command.
In this arQcle let us review 15 pracQcal examples of Linux grep command that will be very useful to both newbies and experts.
First create the following demo_file that will be used in the examples below to demonstrate grep command.
$ cat demo_fileTHIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
1 of 22 18 Apr 12 7:31 pm
this line is the 1st lower case line in this file.This Line Has All Its First Character Of The Word With Upper Case.
Two lines above this line is empty.And this is the last line.
1. Search for the given string in a single file
The basic usage of grep command is to search for a specific string in the specified file as shown below.
Syntax:grep "literal_string" filename
$ grep "this" demo_filethis line is the 1st lower case line in this file.Two lines above this line is empty.
2. Checking for the given string in mul(ple files.
Syntax:grep "string" FILE_PATTERN
This is also a basic usage of grep command. For this example, let us copy the demo_file to demo_file1. The grep output will also includethe file name in front of the line that matched the specific paZern as shown below. When the Linux shell sees the meta character, it doesthe expansion and gives all the files as input to grep.
$ cp demo_file demo_file1
$ grep "this" demo_*demo_file:this line is the 1st lower case line in this file.demo_file:Two lines above this line is empty.demo_file:And this is the last line.demo_file1:this line is the 1st lower case line in this file.demo_file1:Two lines above this line is empty.demo_file1:And this is the last line.
3. Case insensi(ve search using grep -‐i
Syntax:grep -i "string" FILE
This is also a basic usage of the grep. This searches for the given string/paZern case insensiQvely. So it matches all the words such as “the”,“THE” and “The” case insensiQvely as shown below.
$ grep -i "the" demo_fileTHIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.this line is the 1st lower case line in this file.This Line Has All Its First Character Of The Word With Upper Case.And this is the last line.
4. Match regular expression in files
Syntax:grep "REGEX" filename
This is a very powerful feature, if you can use use regular expression effecQvely. In the following example, it searches for all the paZernthat starts with “lines” and ends with “empty” with anything in-‐between. i.e To search “lines[anything in-‐between]empty” in the
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
2 of 22 18 Apr 12 7:31 pm
demo_file.
$ grep "lines.*empty" demo_fileTwo lines above this line is empty.
From documentaQon of grep: A regular expression may be followed by one of several repeQQon operators:
? The preceding item is opQonal and matched at most once.* The preceding item will be matched zero or more Qmes.+ The preceding item will be matched one or more Qmes.{n} The preceding item is matched exactly n Qmes.{n,} The preceding item is matched n or more Qmes.{,m} The preceding item is matched at most m Qmes.{n,m} The preceding item is matched at least n Qmes, but not more than m Qmes.
5. Checking for full words, not for sub-‐strings using grep -‐w
If you want to search for a word, and to avoid it to match the substrings use -‐w opQon. Just doing out a normal search will show out all thelines.
The following example is the regular grep where it is searching for “is”. When you search for “is”, without any opQon it will show out “is”,“his”, “this” and everything which has the substring “is”.
$ grep -i "is" demo_fileTHIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.this line is the 1st lower case line in this file.This Line Has All Its First Character Of The Word With Upper Case.Two lines above this line is empty.And this is the last line.
The following example is the WORD grep where it is searching only for the word “is”. Please note that this output does not contain the line“This Line Has All Its First Character Of The Word With Upper Case”, even though “is” is there in the “This”, as the following is looking onlyfor the word “is” and not for “this”.
$ grep -iw "is" demo_fileTHIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.this line is the 1st lower case line in this file.Two lines above this line is empty.And this is the last line.
6. Displaying lines before/aQer/around the match using grep -‐A, -‐B and -‐C
When doing a grep on a huge file, it may be useful to see some lines aoer the match. You might feel handy if grep can show you not onlythe matching lines but also the lines aoer/before/around the match.
Please create the following demo_text file for this example.
$ cat demo_text4. Vim Word Navigation
You may want to do several navigation in relation to the words, such as:
* e - go to the end of the current word. * E - go to the end of the current WORD. * b - go to the previous (before) word. * B - go to the previous (before) WORD. * w - go to the next word. * W - go to the next WORD.
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
3 of 22 18 Apr 12 7:31 pm
WORD - WORD consists of a sequence of non-blank characters, separated with white space.word - word consists of a sequence of letters, digits and underscores.
Example to show the difference between WORD and word
* 192.168.1.1 - single WORD * 192.168.1.1 - seven words.
6.1 Display N lines aQer match
-‐A is the opQon which prints the specified N lines aoer the match as shown below.
Syntax:grep -A <N> "string" FILENAME
The following example prints the matched line, along with the 3 lines aoer it.
$ grep -A 3 -i "example" demo_textExample to show the difference between WORD and word
* 192.168.1.1 - single WORD* 192.168.1.1 - seven words.
6.2 Display N lines before match
-‐B is the opQon which prints the specified N lines before the match.
Syntax:grep -B <N> "string" FILENAME
When you had opQon to show the N lines aoer match, you have the -‐B opQon for the opposite.
$ grep -B 2 "single WORD" demo_textExample to show the difference between WORD and word
* 192.168.1.1 - single WORD
6.3 Display N lines around match
-‐C is the opQon which prints the specified N lines before the match. In some occasion you might want the match to be appeared with thelines from both the side. This opQons shows N lines in both the side(before & aoer) of match.
$ grep -C 2 "Example" demo_textword - word consists of a sequence of letters, digits and underscores.
Example to show the difference between WORD and word
* 192.168.1.1 - single WORD
7. Highligh(ng the search using GREP_OPTIONS
As grep prints out lines from the file by the paZern / string you had given, if you wanted it to highlight which part matches the line, thenyou need to follow the following way.
When you do the following export you will get the highlighQng of the matched searches. In the following example, it will highlight all thethis when you set the GREP_OPTIONS environment variable as shown below.
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
4 of 22 18 Apr 12 7:31 pm
$ export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'
$ grep this demo_filethis line is the 1st lower case line in this file.Two lines above this line is empty.And this is the last line.
8. Searching in all files recursively using grep -‐r
When you want to search in all the files under the current directory and its sub directory. -‐r opQon is the one which you need to use. Thefollowing example will look for the string “ramesh” in all the files in the current directory and all it’s subdirectory.
$ grep -r "ramesh" *
9. Invert match using grep -‐v
You had different opQons to show the lines matched, to show the lines before match, and to show the lines aoer match, and to highlightmatch. So definitely You’d also want the opQon -‐v to do invert match.
When you want to display the lines which does not matches the given string/paZern, use the opQon -‐v as shown below. This example willdisplay all the lines that did not match the word “go”.
$ grep -v "go" demo_text4. Vim Word Navigation
You may want to do several navigation in relation to the words, such as:
WORD - WORD consists of a sequence of non-blank characters, separated with white space.word - word consists of a sequence of letters, digits and underscores.
Example to show the difference between WORD and word
* 192.168.1.1 - single WORD* 192.168.1.1 - seven words.
10. display the lines which does not matches all the given pa]ern.
Syntax:grep -v -e "pattern" -e "pattern"
$ cat test-file.txtabcd
$ grep -v -e "a" -e "b" -e "c" test-file.txtd
11. Coun(ng the number of matches using grep -‐c
When you want to count that how many lines matches the given paZern/string, then use the opQon -‐c.
Syntax:grep -c "pattern" filename
$ grep -c "go" demo_text6
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
5 of 22 18 Apr 12 7:31 pm
When you want do find out how many lines matches the paZern
$ grep -c this demo_file3
When you want do find out how many lines that does not match the paZern
$ grep -v -c this demo_file4
12. Display only the file names which matches the given pa]ern using grep -‐l
If you want the grep to show out only the file names which matched the given paZern, use the -‐l (lower-‐case L) opQon.
When you give mulQple files to the grep as input, it displays the names of file which contains the text that matches the paZern, will bevery handy when you try to find some notes in your whole directory structure.
$ grep -l this demo_*demo_filedemo_file1
13. Show only the matched string
By default grep will show the line which matches the given paZern/string, but if you want the grep to show out only the matched string ofthe paZern then use the -‐o opQon.
It might not be that much useful when you give the string straight forward. But it becomes very useful when you give a regex paZern andtrying to see what it matches as
$ grep -o "is.*line" demo_fileis line is the 1st lower case lineis lineis is the last line
14. Show the posi(on of match in the line
When you want grep to show the posiQon where it matches the paZern in the file, use the following opQons as
Syntax:grep -o -b "pattern" file
$ cat temp-file.txt1234512345
$ grep -o -b "3" temp-file.txt2:38:3
Note: The output of the grep command above is not the posiQon in the line, it is byte offset of the whole file.
15. Show line number while displaying the output using grep -‐n
To show the line number of file with the line matched. It does 1-‐based line numbering for each file. Use -‐n opQon to uQlize this feature.
$ grep -n "go" demo_text5: * e - go to the end of the current word.6: * E - go to the end of the current WORD.
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
6 of 22 18 Apr 12 7:31 pm
35 TweetTweet 36 53Like Share
7: * b - go to the previous (before) word.8: * B - go to the previous (before) WORD.9: * w - go to the next word.10: * W - go to the next WORD.
Addi(onal Grep Tutorials
7 Linux Grep OR, Grep AND, Grep NOT Operator ExamplesRegular Expressions in Grep Command with 10 Examples – Part IAdvanced Regular Expressions in Grep Command with 10 Examples – Part IISearch in a *.bz2 file using bzgrep, and *.gz file using zgrep
Awesome Linux Ar(cles
Following are few awesome 15 examples arQcles that you might find helpful.
Linux Crontab: 15 Awesome Cron Job ExamplesMommy, I found it! — 15 PracQcal Linux Find Command Examples15 Examples To Master Linux Command Line HistoryUnix LS Command: 15 PracQcal Examples
Comment
If you enjoyed this ar(cle, you might also like..
50 Linux Sysadmin Tutorials1.50 Most Frequently Used Linux Commands (With Examples)2.Top 25 Best Linux Performance Monitoring and Debugging Tools3.Mommy, I found it! – 15 PracQcal Linux Find CommandExamples
4.
Linux 101 Hacks 2nd EdiQon eBook 5.
Awk IntroducQon – 7 Awk Print ExamplesAdvanced Sed SubsQtuQon Examples8 EssenQal Vim Editor NavigaQon Fundamentals25 Most Frequently Used Linux IPTables RulesExamplesTurbocharge PuTTY with 12 Powerful Add-‐Ons
Tags: File Search UQlity, Grep Command, Highlight Search Output, Linux Full-‐Text Searching, Linux Grep Command, Search File Content,Search MulQple Files
{ 71 comments… read them below or add one }
1 Joao Trindade March 28, 2009 at 3:54 am
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
7 of 22 18 Apr 12 7:31 pm
You have a small glitch:>> 4. Match regular expression in files using grep -‐i
Don’t you mean:4. Match regular expression in files using grep -‐e
The rest of the post is great.
2 Ramesh March 29, 2009 at 12:16 am
Joao,
Thanks for poinQng it out. I have corrected it. Also, we can do REGEX without the opQon -‐e as shown in the example #4.
From Man Pages:
SYNOPSIS grep [options] PATTERN [FILE...] grep [options] [-e PATTERN | -f FILE] [FILE...]
-e PATTERN, --regexp=PATTERNUse PATTERN as the pattern; useful to protect patterns beginning with -.
3 dragon March 31, 2009 at 11:26 pm
Hi:
FYI, Qp 14 will be2:38:3on Ubuntu system. (including the \n character I guess
4 Ramesh March 31, 2009 at 11:44 pm
Dragon,
Thanks for poinQng it out. I’ve corrected it.
5 Francesco Talamona April 26, 2009 at 2:48 am
I find very useful the following command, when you have to deal with a very lengthy configuraQon file full of comments:
grep -‐v -‐E ‘^\#|^$’ /etc/squid/squid.conf
It skips every line beginning with an hash (#) or empty, so you can see at a glance the 15 lines edited out of a +4400 lines text file.
BTW interesQng topics, great posts…
6 albar May 7, 2009 at 7:51 pm
help mehow to bzgrep : ^C02but ^C is count as one special character,in this word:data1^C02data2
thank’s
7 Ramesh Natarajan May 8, 2009 at 5:51 pm
@Francesco Talamona,
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
8 of 22 18 Apr 12 7:31 pm
Thanks a lot for sharing your grep command example. Yes. all those empty lines and comment lines can get very annoying whenyou do grep. So, it is an excellent idea to hide them in the grep output with your examples.
8 sasikala May 11, 2009 at 9:41 pm
@albar,
try like thisgrep ‘\^C02ʹ′
9 albar May 12, 2009 at 1:18 am
@sasikala ,i do have try that too, but sQll got nothing,but it works when ^ and C count as two character
thank’s
10 SathiyaMoorthy May 12, 2009 at 4:33 am
@albar
You should type ^C as ctrl-‐v + ctrl-‐c in grep as single character as$ grep ^C02 file
Dont escape, dont type it as ^ C as two characters. Hope this helps.
11 albar May 12, 2009 at 8:59 pm
@sathiya,god bless u allit work’s thanks
12 Manish Patel May 21, 2009 at 7:00 pm
Hi
I am trying to exclude the last word of all the line like sync.php, uploads.php, backup.php
File text include as below
/usr/home/htdocs/drag-‐and-‐drop/htdocs.php/usr/home//htdocs/sms/publish/pages/sync.php/usr/home/htdocs/track/backup.php/usr/home/htdocs/smstest/smstest.php/usr/home/htdocs/uploads.php/usr/home/htdocs/017/backup.php
How can I achieve that using grep or sed or awk
Also how I can use “*” wildcard in sed command like to replace *.php to *.txt or any other extension.
Thank you in advance.
Manish
13 Francesco Talamona May 21, 2009 at 10:36 pm
Are you restricted to sed or awk?
1)dirname ‘/usr/home/htdocs/drag-‐and-‐drop/htdocs.php’
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
9 of 22 18 Apr 12 7:31 pm
/usr/home/htdocs/drag-‐and-‐drop
2)rename does what you want
14 Manish Patel May 24, 2009 at 6:55 pm
Hi,
Those lines are the contents of the text file and I don’t want to change the actual directory or the file on server. I want to changethe contents of the file where all file file names ending at the line should be removed. So the final file contents should look likethis
cat filecontenet.txt/usr/home/htdocs/drag-‐and-‐drop//usr/home//htdocs/sms/publish/pages//usr/home/htdocs/track//usr/home/htdocs/smstest//usr/home/htdocs//usr/home/htdocs/
I think rename would not help here in ediQng file contents.
Thank youManish
15 SathiyaMoorthy May 24, 2009 at 11:43 pm
rev filecontenet.txt | cut -‐d’/’ -‐f2-‐ | rev
rev filecontenet.txt –> reverses the file and pipes to cut command.cut -‐d’/’ -‐f2-‐ –> cuts off the first field ( cuts off last field, as it is reversed ).rev –> prints the output given order.
16 P0B0T May 26, 2009 at 11:36 pm
Manish,
I believe you’re looking for the following
sed -‐e ‘s/.php$//’ filecontenet.txt
17 P0B0T May 26, 2009 at 11:39 pm
Sorry, didn’t read your requirement carefully.
Try this:
sed -‐e ‘s/\/[^/]*.php$/\//’ filecontenet.txt
18 Manish Patel June 5, 2009 at 5:31 pm
Hi
Thank you to Sathiya Moorthy and P0B0T.
Both soluQon worked very nicely for me.
P0B0T can you explain how your command works for each defined opQon ’s/\/[^/]*.php$/\//’
Thank youManish
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
10 of 22 18 Apr 12 7:31 pm
19 mano June 10, 2009 at 3:00 am
The above info on grep is really great. I want to search for a string in all the files in the directory and add a $ symbol at the start ofthe searched line and save in the same file.
20 SathiyaMoorthy June 18, 2009 at 10:49 pm
@manoMore than using grep for this requirement, you can use sed which is:sed -‐i ‘s/.*abc.*/$&/’ *
-‐i : edit the input file.s/// : subsQtute the matched paZern with the replacement string./.*abc.*/ : match the string abc/$&/ : Replace with $ followed by matched string.* : all the files in the current directory.
This is one way of saQsfying your requirement, there may be other efficient ways.
Hope this helps.
21 mano June 19, 2009 at 12:17 am
Hi SathiaMoorthy, Thank u so much. it works fine. If I need to search for files in all subdirectories, how should this “sed” commandmodified?
Thanks in advance.
mano
22 SathiyaMoorthy June 27, 2009 at 12:05 am
@manoModificaQon in sed command is not needed.
To search for all files in the subdirectory.find . -‐type f
Execute the command on all those files with -‐exec.find . -‐type f -‐exec sed -‐i ‘s/.*abc.*/#&/’ {} \;
But think twice before execuQng this command, because it will recursively edit all the files. Taking backup before execuQng thiscommand is wise.
Refer the earlier arQcle linux find command examples.
23 Vidya July 1, 2009 at 2:59 am
Hi,
I want to grep next 3 words in a line from the matching criteria word..like if the line is
This is -‐g gateway -‐e enterprise -‐s server
Then I want to grep “-‐g gateway -‐e enterprise” from the line
Can you please help me in this case.Here gateway and enterprise value can be anything so need to grep next 3 words starQng form “-‐g”
24 SathiyaMoorthy July 1, 2009 at 5:58 am
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
11 of 22 18 Apr 12 7:31 pm
@Vidhya
$ grep -‐o -‐E — “-‐g \w+ -‐e \w+” FILENAME-‐g gateway -‐e enterprise
ExplanaQon of the above command.,
-‐o : only matching ( point 13. )-‐E : extended regexp— : indicate end of opQons\w+ : word
25 Vidya July 1, 2009 at 9:00 am
Hi Sathiya,Its not working.It saysgrep: illegal opQon — ogrep: illegal opQon — EUsage: grep -‐hblcnsviw paZern file . . .
I am working on Solaris and se�ng shell as bash.
26 Amit Agarwal September 21, 2009 at 6:18 am
grep version on solaris is liZle older and as man would show you all these opQons are not available, so you can try ack(standalone) version which is very powerful and requires only perl to be installed.
27 learner October 7, 2009 at 5:31 am
Hi,How to use grep to find lines containing mulQple stringsex: line1:Today is oct 7, wednesday. not 8thline2: This is not summer.line3: when is summer?I want to return line2 containing strings “not” and “summer” both.
Thank You.
28 SathiyaMoorthy October 7, 2009 at 10:41 am
@learner
There are several ways possible, use the one which you find as appropriate.
$ grep "not.*summer" file1line2: This is not summer.
$ grep "not" file1 | grep "summer"line2: This is not summer.
29 learner October 7, 2009 at 10:56 pm
@SathiyaMoorthy
Thank You for your very quick reply.
My quesQon was not piping and hard coding every string , as i menQoned mulQple strings, i was looking for something in likes ofgrep -‐F ‘string1string2string3
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
12 of 22 18 Apr 12 7:31 pm
string4…..stringn’ filenamewhich returns single occurrence of something like either string1 ,string2,.. stringn or all .., what i wanted was only string1 andstring2 and ……. stringn begin returned.[please note that i will be provided with strings as newline separated strings ,which i don't want to parse again and i haveconstraint of using grep only]
Thank You.
30 Ashish December 1, 2009 at 4:07 pm
Hi,
I need to sthing like thisI have a file containing 400 domainId values seprated by new lineex. domain.txtdomain1domain2domain3…
I have a script that takes each domain and calls an api that returns me an xml.like this for each domainval1domain1val2val3val4XXXval1
now i want to spit out the domain name in a file that does not matches domainid value XXX.
how can i do it using grepTIA
31 Ashish December 1, 2009 at 4:16 pm
Hi,
I need to sthing like thisI have a file containing 400 domainId values seprated by new lineex. domain.txtdomain1domain2domain3…
I have a script that takes each domain and calls an api that returns me an xml.like this for each domain
<tag1>val1</tag1><domain>domain1</domain><tag2>val2</tag2><tag3>val3</tag3><tag4>val4</tag4><domainid>XXX</domainid><tag5>val1</tag5>
now i want to spit out the domain name in a file that does not matches domainid value XXX.
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
13 of 22 18 Apr 12 7:31 pm
how can i do it using grepTIA
32 Varun December 17, 2009 at 7:16 am
Hi,The opQons menQoned in point 6 for displaying the context with A, B, & C does not seem to work on Solaris 10 with both grep &egrep
Is there a version of this grep available for Solaris?
Thank you,Varun.
33 Jawn Hewz December 21, 2009 at 7:54 pm
Does the -‐b (byte offset) work when greping binary files? I do not get an offset returned when I grep a binary file, but I do whenusing a text file. I am using grep under Cygwin.
34 fety January 11, 2010 at 3:32 am
thanks very much for this tutorial. it is very helpful..
35 eMancu January 24, 2010 at 12:49 pm
Awsome tutorial!I’m reading all your blog, its amazing!
36 Raghu Baba January 30, 2010 at 4:44 am
Hai.. I want to Parse my file .. Word to Excel .. so tell me some grep & cut commands…
37 Jeff Floyd February 1, 2010 at 6:54 pm
Whats the difference between $ grep -‐c ill memo and $ grep -‐n ill memo?
38 joeq February 4, 2010 at 3:57 am
hii got 1 problem…how can i find a numbers like 99,000,000.95 in my server database using unix command..tq
39 abhishek February 21, 2010 at 4:31 am
content was very useful
40 Anonymous March 8, 2010 at 4:26 am
Hi,
Those lines are the contents of the text file and I don’t want to change the actual directory or the file on server. I want to changethe contents of the file where all file file names ending at the line should be removed. So the final file contents should look likethis
cat filecontenet.txt/usr/home/htdocs/drag-‐and-‐drop//usr/home//htdocs/sms/publish/pages//usr/home/htdocs/track//usr/home/htdocs/smstest//usr/home/htdocs//usr/home/htdocs/
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
14 of 22 18 Apr 12 7:31 pm
I think rename would not help here in ediQng file contents.
for this quesQon , awk really helpful with single line command
go to the current directoryls -‐l | grep -‐v ^d | awk ‘{print $9}’ > new.txt
$9 — is the last filed which is filename only when u list with opQon ls -‐l ,new.txt contains only the filenames which you wnated to filter out
41 skipper March 26, 2010 at 5:54 am
nice arQcle
42 VIKAS April 4, 2010 at 7:23 pm
Excellent stuff, just loved grep -‐A,B,C opQonsandgrep -‐o “xxxx.*yyyy” kinda commands.
This will help me a lot, I used awk more in my shell scripts, But I have got a new friend “grep” for some selecQve prinQng
43 Sam April 17, 2010 at 3:35 am
I have just finish reading this wonderful arQcle. Let me answer this:Whats the difference between $ grep -‐c ill memo and $ grep -‐n ill memo?grep -‐c return the number lines that matched ill in memo.grep -‐n return the matched lines with line-‐number as prefix.
44 Chong April 20, 2010 at 3:05 am
how to grep a statement contain ‘*’ from a file at the same Qme to match the first character too.
example the statement in filename profile.txt :-‐
“Mary stay at uZana*istana with her grandmum”
current grep statement :-‐grep “^Mary stay at uZana*istana” profile.txt
result: no row matched the grep statement because of *How to use grep command for the combine condiQon of statement with * and match the front word?
45 vm April 30, 2010 at 8:24 pm
In bash script without using perl, how i can grep a number from a file if there exists a number greater than 80 in that file.
46 palash June 13, 2010 at 12:14 pm
grep -‐c “paZern” filename returns the number of lines that matches the paZern, even if the paZern occurred for more than oneQme in any line. Is there any opQon to know how many Qmes the paZern matched in a file?
47 mathan June 20, 2010 at 10:21 am
HI,I am new to linux…can you tell me how to exit from grep command….mistakenly i type grep filename
But it’s nothing shown…. pls looking for quick reply…
48 SathiyaMoorthy July 4, 2010 at 7:20 am
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
15 of 22 18 Apr 12 7:31 pm
@mathan
There is nothing like exiQng from grep.
First argument to grep is taken as PATTERN, not as filename. So as far as i understand it is waiQng for input to match. So just exitfrom it using CTRL+D.
49 Ross HuggeZ September 16, 2010 at 5:04 am
Nice arQcle. Thanks.
50 ec October 6, 2010 at 6:14 pm
Hi to all,I just started to learn linux a month agoCan I extract 2 to 6 leZer words from a text file using one grep command only!To menQon that each word is on its own linewhat’s the grep command to do this job?I tried any combinaQon of grep and not the result which I am looking for
51 Lou February 24, 2011 at 1:16 pm
Is there a way to grep for a word on in a file and return that line plus the next?
52 Francesco Talamona February 26, 2011 at 3:33 am
@ Lou:
cat tes�ile.txtfirst linematching linefollowing lineending line
grep matching -‐B 1 tes�ile.txtfirst linematching line
53 abhishek kumar April 19, 2011 at 12:53 pm
really to nice and too simple to understand,
thats great
thank you
54 Nikita April 21, 2011 at 12:06 pm
PLEASE HELP ON QUESTION B.
You are searching a file for lines that contain US state abbreviaQons in parentheses. e.g.: (ma),(NH),(Ky), etc. So you decide tomatch any line containing ( ) with exactly two characters (not leZers) in between.A) What grep will get this done?
My Answer—> grep ‘([a-‐zA-‐Z][A-‐Za-‐z])’ file
You now noQce that some of the lines that the grep from part A matched contain the the string (expired). You want to eliminatethese lines from your output, so you decide to pipe your output to another grep.B) What will the new command be? (both greps with the pipe)
My Answer —> grep –v grep | grep ‘([a-‐zA-‐Z] [A-‐Za-‐z])’ ——-‐> PLEASE HELP!
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
16 of 22 18 Apr 12 7:31 pm
55 Francesco Talamona April 22, 2011 at 12:44 pm
@Nikita:One step is enough:egrep ‘\([a-‐zA-‐Z]{2}\)’ file
56 suprabhat April 27, 2011 at 3:26 am
How to display all lines that have less than 9 character in a file
57 Paul May 16, 2011 at 3:09 pm
I’m new to linux; was wondering what does \# aoer the grep command accomplish, as shown in the example below?
grep \# input*.txt | awk ‘{print $4}’ | sort | uniq > output.txt
thank you
58 Dinesh May 17, 2011 at 4:03 pm
For a given patern likeFri Nov 26 16:04:52 2010I want to grep for all the lines in a file having the above format.But I have all the values except for the Qme, that is “16:04:52 ” , the data I have is“Fri Nov 26 2010 ” . The file is having 5 years of date with the Qmestamp as specified above.Please let me know How shall I grep the file to get all the lines on the date “Fri Nov 26 2010 ” .
thanks
59 shyam May 29, 2011 at 10:45 pm
i have a doubt here i tried to look at output of cmd
grep “[^A-‐Z]” file.txt
this is showing all characters excluding capital leZerwhat does this command actually do
60 shivaraj PaQl July 25, 2011 at 11:14 am
HI i have a file with this values100 first line101 second line101102102109now i need a script that can take two lines and find which is greatest
61 sudheer September 10, 2011 at 8:32 pm
1) Use grep (or awk) to output all lines in a given file which contain employee ID numbers. Assume that each employee ID numberconsists of 1-‐4 digits followed by two leZers: the first is either a W or a S and the second is either a C or a T. ID numbers neverstart with 0s. Further assume that an employee ID is always proceeded by some type of white space – tab, blank, new line etc.However, there might be characters aoer it, for example punctuaQon.What to turn in: Turn in three things:
a. A file with the regular expression which can directly be used by grep (or awk)
b. A text file which you used to test your regular expression. Make sure that you include valid and ‘invalid’ employee IDs, havethem at the beginning and the end of lines, sentences, etc.
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
17 of 22 18 Apr 12 7:31 pm
c. A second document which re-‐writes the regular expression in a more human-‐readable form and explains the purpose of thedifferent components of the regular expression. Also include a short explanaQon of your test cases.
2) Use grep (or awk) to output all the lines in a given file which contain a decimal number (e.g. a number which includes a decimalpoint). Decimal numbers do not have leading zeros but they might have trailing zeros. Assume the number is always surroundedby white space.
What to turn in: The same three things as above (except, of course, for this problem).
3) Write a regular expression for the valid idenQfiers in Java. You are allowed to use ‘shortcuts’, but need to make sure that youspecify exactly what they are (e.g. if you use digit specify that that means 0, 1, 2, 3, ….9.)
62 Dinesh September 22, 2011 at 12:43 pm
Paul
grep \# input*.txt | awk ‘{print $4}’ | sort | uniq > output.txt
Since # is a special character,we are treaQng # as # by pu�ng backslash infront of that.Noe Greap searches for paZern # in a list of file starQng as input and nding a txt and then awk prints the 4th field and sort is doingsorQng the 4th field returns from awk and unis is doing uniq operaQon.
63 Dinesh September 22, 2011 at 12:45 pm
Shyam
grep “[^A-‐Z]” file.txt
Grep will print the lines that does not start with CAPTIAL LETTERS.
Using ^ inside the [] will do the work opposite to the paZern what you have been searching for …
64 haydarekarrar December 23, 2011 at 4:29 am
Just a minor thing the last result line is removed in the example above, this should be the result:
$ grep “this” greptest.txtthis line is the 1st lower case line in this file.Two lines above this line is empty.And this is the last line.
65 gotham January 22, 2012 at 4:32 am
awesome. thanks a lot.
66 edward January 31, 2012 at 2:20 am
For example my data is (file.ave) :
MRR 120101000000 UTC+07 AVE 60 STF 150 ASLH 150 300 450 600 750 900TF 0.0149 0.0515 0.1171F00 -‐67.04F01 -‐69.27
I use grep as:grep -‐r ‘MRR’ *.ave > Qme_0101.txt. In this case all file goes to Qme_0101.txt, I have many files and I need each output goes tospecific file name. Any idea ? And how to use grep to take F00 and F01 ? If I use grep -‐r ‘F’ *.ave, the first line will be taken alsobecause of STF, Thanks for help..
67 shrikant February 14, 2012 at 10:23 am
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
18 of 22 18 Apr 12 7:31 pm
Thank you
68 chinna February 19, 2012 at 8:48 am
here my quesQon is in a directory i have 10 files.some files contains size in kb’s and some files contains size in mb’s…..i wantdisplay the files only which file size is more than 1 mb……could anybudy help to find answer for this quesQon….
69 Anderson Venturini March 14, 2012 at 6:01 am
Great post! It was very useful! thanks a lot!
70 Anonymous April 9, 2012 at 3:22 pm
To answer Chinna… If you have some files showing M, and some K, then your “ls” command is probably running on a Linux box,and using the “-‐h” opQon.
The preferred method would be NOT to use the “-‐h” opQon, and let “ls” print file sizes in bytes, which means that your script willbe able to get the same units+detail for all file sizes listed.
Then you can use “awk” to filter out files where $5 (5th field) is over 1Meg, like this:
/bin/ls -‐l | awk ‘$5>=2^20ʹ′
If you only want file names, not ‘ls’ style list, then have awk give you that part of output:/bin/ls -‐l | awk ‘$5>=2^20{print $NF}’
Note: this does not like file names with spaces…—-‐notes for Other posQngs on this thread:To: Francesco Talamona(who was using “grep” to remove ##_comments from long config files)grep -‐v -‐E ‘^\#|^$’ /etc/squid/squid.confYou may want to remove comments that do NOT start on the first char of a line,and ‘sed’ is more useful for thatsed ‘s/#.*$//;/^[ ]*$/d’ /etc/squid/squid.confThis will remove comments from each line, then discard the line if blank, or only spaces remain.=========Also, where the -‐B and -‐A opQons are described for “grep”…This is for GNU/Linux, and not supported for most Non-‐Linux boxes.
#–JETS
71 KHEE April 15, 2012 at 8:39 pm
Hi expert,
i am new to unix env…try to use certain command to help me generate 1 output file as below:
input file:AA/I 0.2 0.3 0.8BB/I 0.6 0.8 0.9CC 0.8 2.1 6.0
I just want to grep all A B C only, where want to skip the line which have the number together. And my output file paZern is A B CD…etc ( A, B,C all are a word).
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
19 of 22 18 Apr 12 7:31 pm
mean i want first,second line, and skip 3rd & 4th lines, thanks for help.
Leave a Comment
Name
E-‐mail
Website
NoQfy me of followup comments via e-‐mail
Submit
Previous post: Mergecap and Tshark: Merge Packet Dumps and Analyze Network Traffic
Next post: 4 Ways to IdenQfy Who is Logged-‐In on Your Linux System
Sign up for our free email newsleZer [email protected] Sign Up
RSS TwiZer Facebook
Search
EBOOKS
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
20 of 22 18 Apr 12 7:31 pm
POPULAR POSTS
12 Amazing and EssenQal Linux Books To Enrich Your Brain and Library50 UNIX / Linux Sysadmin Tutorials50 Most Frequently Used UNIX / Linux Commands (With Examples)How To Be ProducQve and Get Things Done Using GTD30 Things To Do When you are Bored and have a ComputerLinux Directory Structure (File System Structure) Explained with ExamplesLinux Crontab: 15 Awesome Cron Job ExamplesGet a Grip on the Grep! – 15 PracQcal Grep Command ExamplesUnix LS Command: 15 PracQcal Examples15 Examples To Master Linux Command Line HistoryTop 10 Open Source Bug Tracking SystemVi and Vim Macro Tutorial: How To Record and PlayMommy, I found it! -‐-‐ 15 PracQcal Linux Find Command Examples15 Awesome Gmail Tips and Tricks15 Awesome Google Search Tips and TricksRAID 0, RAID 1, RAID 5, RAID 10 Explained with DiagramsCan You Top This? 15 PracQcal Linux Top Command ExamplesTop 5 Best System Monitoring ToolsTop 5 Best Linux OS DistribuQonsHow To Monitor Remote Linux Host using Nagios 3.0Awk IntroducQon Tutorial – 7 Awk Print ExamplesHow to Backup Linux? 15 rsync Command ExamplesThe UlQmate Wget Download Guide With 15 Awesome ExamplesTop 5 Best Linux Text EditorsPacket Analyzer: 15 TCPDUMP Command ExamplesThe UlQmate Bash Array Tutorial with 15 Examples
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
21 of 22 18 Apr 12 7:31 pm
3 Steps to Perform SSH Login Without Password Using ssh-‐keygen & ssh-‐copy-‐idUnix Sed Tutorial: Advanced Sed SubsQtuQon ExamplesUNIX / Linux: 10 Netstat Command ExamplesThe UlQmate Guide for CreaQng Strong Passwords6 Steps to Secure Your Home Wireless NetworkTurbocharge PuTTY with 12 Powerful Add-‐Ons
About The Geek Stuff
My name is Ramesh Natarajan. I will be posQng instrucQon guides, how-‐to, troubleshooQng Qps and tricks onLinux, database, hardware, security and web. My focus is to write arQcles that will either teach you or help you resolve a problem.Read more about Ramesh Natarajan and the blog.
Support Us
Support this blog by purchasing one of my ebooks.
Bash 101 Hacks eBook
Sed and Awk 101 Hacks eBook
Vim 101 Hacks eBook
Nagios Core 3 eBook
Contact Us
Email Me : Use this Contact Form to get in touch me with your comments, quesQons or suggesQons about this site. You can alsosimply drop me a line to say hello!.
Follow us on TwiZer
Become a fan on Facebook
Copyright © 2008–2012 Ramesh Natarajan. All rights reserved | Terms of Service | AdverQse
15 PracQcal Grep Command Examples In Linux / UNIX hZp://www.thegeekstuff.com/2009/03/15-‐pracQcal-‐unix-‐grep...
22 of 22 18 Apr 12 7:31 pm