SlideShare uma empresa Scribd logo
1 de 26
15 Practical Grep Command Examples In Linux / UNIX
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
functionality. Earlier we discussed 15 practical examples for
Linux find command, Linuxcommand line
history and mysqladmin command.
In this article let us review 15 practical 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_file
THIS 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.
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_file
this line is the 1st lower case line in this file.
Two lines above this line is empty.
2. Checking for the given string in multiple 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 include the file name in front of the line that
matched the specific pattern as shown below. When the Linux
shell sees the meta character, it does the 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 insensitive search using grep -i
Syntax:
grep -i "string" FILE
This is also a basic usage of the grep. This searches for the
given string/pattern case insensitively. So it matches all the
words such as “the”, “THE” and “The” case insensitively as
shown below.
$ grep -i "the" demo_file
THIS 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 effectively. In the following example, it searches
for all the pattern that starts with “lines” and ends with “empty”
with anything in-between. i.e To search “lines[anything in-
between]empty” in the demo_file.
$ grep "lines.*empty" demo_file
Two lines above this line is empty.
From documentation of grep: A regular expression may be
followed by one of several repetition operators:
 ? The preceding item is optional and matched at most
once.
 * The preceding item will be matched zero or more times.
 + The preceding item will be matched one or more times.
 {n} The preceding item is matched exactly n times.
 {n,} The preceding item is matched n or more times.
 {,m} The preceding item is matched at most m times.
 {n,m} The preceding item is matched at least n times, but
not more than m times.
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 option. Just doing out a normal search will
show out all the lines.
The following example is the regular grep where it is
searching for “is”. When you search for “is”, without any option
it will show out “is”, “his”, “this” and everything which has the
substring “is”.
$ grep -i "is" demo_file
THIS 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 only for the word “is” and
not for “this”.
$ grep -iw "is" demo_file
THIS 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/after/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 after the match. You might feel handy if grep can
show you not only the matching lines but also the lines
after/before/around the match.
Please create the following demo_text file for this example.
$ cat demo_text
4. 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.
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 after match
-A is the option which prints the specified N lines after the
match as shown below.
Syntax:
grep -A <N> "string" FILENAME
The following example prints the matched line, along with the
3 lines after it.
$ grep -A 3 -i "example" demo_text
Example 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 option which prints the specified N lines before the
match.
Syntax:
grep -B <N> "string" FILENAME
When you had option to show the N lines after match, you
have the -B option for the opposite.
$ grep -B 2 "single WORD" demo_text
Example to show the difference between WORD and word
* 192.168.1.1 - single WORD
6.3 Display N lines around match
-C is the option which prints the specified N lines before the
match. In some occasion you might want the match to be
appeared with the lines from both the side. This options
shows N lines in both the side(before & after) of match.
$ grep -C 2 "Example" demo_text
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
7. Highlighting the search using
GREP_OPTIONS
As grep prints out lines from the file by the pattern / string you
had given, if you wanted it to highlight which part matches the
line, then you need to follow the following way.
When you do the following export you will get the highlighting
of the matched searches. In the following example, it will
highlight all the this when you set the GREP_OPTIONS
environment variable as shown below.
$ export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'
$ grep this demo_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.
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 option is the one which you
need to use. The following 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 options to show the lines matched, to show
the lines before match, and to show the lines after match, and
to highlight match. So definitely You’d also want the option -v
to do invert match.
When you want to display the lines which does not matches
the given string/pattern, use the option -v as shown below.
This example will display all the lines that did not match the
word “go”.
$ grep -v "go" demo_text
4. 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 pattern.
Syntax:
grep -v -e "pattern" -e "pattern"
$ cat test-file.txt
a
b
c
d
$ grep -v -e "a" -e "b" -e "c" test-file.txt
d
11. Counting the number of matches using grep
-c
When you want to count that how many lines matches the
given pattern/string, then use the option -c.
Syntax:
grep -c "pattern" filename
$ grep -c "go" demo_text
6
When you want do find out how many lines matches the
pattern
$ grep -c this demo_file
3
When you want do find out how many lines that does not
match the pattern
$ grep -v -c this demo_file
4
12. Display only the file names which matches
the given pattern using grep -l
If you want the grep to show out only the file names which
matched the given pattern, use the -l (lower-case L) option.
When you give multiple files to the grep as input, it displays
the names of file which contains the text that matches the
pattern, will be very handy when you try to find some notes in
your whole directory structure.
$ grep -l this demo_*
demo_file
demo_file1
13. Show only the matched string
By default grep will show the line which matches the given
pattern/string, but if you want the grep to show out only the
matched string of the pattern then use the -o option.
It might not be that much useful when you give the string
straight forward. But it becomes very useful when you give a
regex pattern and trying to see what it matches as
$ grep -o "is.*line" demo_file
is line is the 1st lower case line
is line
is is the last line
14. Show the position of match in the line
When you want grep to show the position where it matches
the pattern in the file, use the following options as
Syntax:
grep -o -b "pattern" file
$ cat temp-file.txt
12345
12345
$ grep -o -b "3" temp-file.txt
2:3
8:3
Note: The output of the grep command above is not the
position 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 option to utilize
this feature.
$ grep -n "go" demo_text
5: * e - go to the end of the current word.
6: * E - go to the end of the current WORD.
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.
Advanced Regular Expressions in Grep Command with 10 Examples
– Part II
by SASIKALA on JANUARY 17, 2011
In our previous regular
expression part 1 article, we reviewed basic reg-ex with
practical examples.
But we can do much more with the regular expressions. You
can often accomplish complex tasks with a single regular
expression instead of writing several lines of codes.
When applying a regex to a string, the regex engine will start
at the first character of the string. It will try all possible
permutations of the regular expression at the first character.
Only if all possibilities have been tried and found to fail, will
the regex engine continue with the second character in the
text.
The regex will try all possible permutations of the regex, in
exactly the same order. The result is that the regex-directed
engine will return the leftmost match.
In this article, let us review some advanced regular
expression with examples.
Example 1. OR Operation (|)
Pipe character (|) in grep is used to specify that either of two
whole subexpressions occur in a position.
“subexpression1|subexpression2″ matches either
subexpression1 or subexpression2.
The following example will remove three various kind of
comment lines in a file using OR in a grep command.
First, create a sample file called “comments”.
$ cat comments
This file shows the comment character in various
programming/scripting languages
### Perl / shell scripting
If the Line starts with single hash symbol,
then its a comment in Perl and shell scripting.
' VB Scripting comment
The line should start with a single quote to comment in VB
scripting.
// C programming single line comment.
Double slashes in the beginning of the line for single
line comment in C.
The file called “comments” has perl,VB script and C
programming comment lines. Now the following grep
command searches for the line which does not start with # or
single quote (‘) or double front slashes (//).
$ grep -v "^#|^'|^//" comments
This file shows the comment character in various
programming/scripting languages
If the Line starts with single hash symbol,
then its a comment in Perl and shell scripting.
The line should start with a single quote to comment in VB
scripting.
Double slashes in the beginning of the line for single
line comment in C.
Example 2. Character class expression
As we have seen in our previous regex article example 9, list
of characters can be mentioned with in the square brackets to
match only one out of several characters. Grep command
supports some special character classes that denote certain
common ranges. Few of them are listed here. Refer man
page of grep to know various character class expressions.
[:digit:] Only the digits 0 to 9
[:alnum:] Any alphanumeric character 0 to 9 OR A to Z or
a to z.
[:alpha:] Any alpha character A to Z or a to z.
[:blank:] Space and TAB characters only.
These are always used inside square brackets in the form
[[:digit:]]. Now let us grep all the process Ids of ntpd daemon
process using appropriate character class expression.
$ grep -e "ntpd[[[:digit:]]+]" /var/log/messages.4
Oct 28 11:42:20 gstuff1 ntpd[2241]: synchronized to
LOCAL(0), stratum 10
Oct 28 11:42:20 gstuff1 ntpd[2241]: synchronized to
15.11.13.123, stratum 3
Oct 28 12:33:31 gstuff1 ntpd[2241]: synchronized to
LOCAL(0), stratum 10
Oct 28 12:50:46 gstuff1 ntpd[2241]: synchronized to
15.11.13.123, stratum 3
Oct 29 07:55:29 gstuff1 ntpd[2241]: time reset -0.180737 s
Example 3. M to N occurences ({m,n})
A regular expression followed by {m,n} indicates that the
preceding item is matched at least m times, but not more than
n times. The values of m and n must be non-negative and
smaller than 255.
The following example prints the line if its in the range of 0 to
99999.
$ cat number
12
12345
123456
19816282
$ grep "^[0-9]{1,5}$" number
12
12345
The file called “number” has the list of numbers, the above
grep command matches only the number which 1 (minimum is
0) to 5 digits (maximum 99999).
Note: For basic grep command examples, read 15 Practical
Grep Command Examples.
Example 4. Exact M occurence ({m})
A Regular expression followed by {m} matches exactly m
occurences of the preceding expression. The following grep
command will display only the number which has 5 digits.
$ grep "^[0-9]{5}$" number
12345
Example 5. M or more occurences ({m,})
A Regular expression followed by {m,} matches m or more
occurences of the preceding expression. The following grep
command will display the number which has 5 or more digits.
$ grep "[0-9]{5,}" number
12345
123456
19816282
Note: Did you know that you can use bzgrep command to
search for a string or a pattern (regular expression) on bzip2
compressed files.
Example 6. Word boundary (b)
b is to match for a word boundary. b matches any
character(s) at the beginning (bxx) and/or end (xxb) of a
word, thus btheb will find the but not thet, but bthe will find
they.
# grep -i "btheb" comments
This file shows the comment character in various
programming/scripting languages
If the Line starts with single hash symbol,
The line should start with a single quote to comment in VB
scripting.
Double slashes in the beginning of the line for single
line comment in C.
Example 7. Back references (n)
Grouping the expressions for further use is available in grep
through back-references. For ex, ([0-9])1 matches two digit
number in which both the digits are same number like
11,22,33 etc.,
# grep -e '^(abc)1$'
abc
abcabc
abcabc
In the above grep command, it accepts the input the STDIN.
when it reads the input “abc” it didnt match, The line “abcabc”
matches with the given expression so it prints. If you want to
use Extended regular expression its always preferred to use
egrep command. grep with -e option also works like egrep,
but you have to escape the special characters like
paranthesis.
Note: You can also use zgrep command to to search inside a
compressed gz file.
Example 8. Match the pattern “Object Oriented”
So far we have seen different tips in grep command, Now
using those tips, let us match “object oriented” in various
formats.
$ grep "OO|([oO]bject( |-)[oO]riented)"
The above grep command matches the “OO”, “object
oriented”, “Object-oriented” and etc.,
Example 9. Print the line “vowel singlecharacter
samevowel”
The following grep command print all lines containing a vowel
(a, e, i, o, or u) followed by a single character followed by the
same vowel again. Thus, it will find eve or adam but not vera.
$ cat input
evening
adam
vera
$ grep "([aeiou]).1" input
evening
adam
Example 10. Valid IP address
The following grep command matches only valid IP address.
$ cat input
15.12.141.121
255.255.255
255.255.255.255
256.125.124.124
$ egrep 'b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-
9]?.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' input
15.12.141.121
255.255.255.255
In the regular expression given above, there are different
conditions. These conditioned matches should occur three
times and one more class is mentioned separately.
1. If it starts with 25, next number should be 0 to 5 (250 to
255)
2. If it starts with 2, next number could be 0-4 followed by 0-9
(200 to 249)
3. zero occurence of 0 or 1, 0-9, then zero occurence of any
number between 0-9 (0 to 199)
4. Then dot character

Mais conteúdo relacionado

Mais procurados

PostgreSQL - Lección 7 - Usando los operadores de conjunto
PostgreSQL - Lección 7 - Usando los operadores de conjuntoPostgreSQL - Lección 7 - Usando los operadores de conjunto
PostgreSQL - Lección 7 - Usando los operadores de conjunto
Nicola Strappazzon C.
 

Mais procurados (20)

Better Embedded 2013 - Detecting Memory Leaks with Valgrind
Better Embedded 2013 - Detecting Memory Leaks with ValgrindBetter Embedded 2013 - Detecting Memory Leaks with Valgrind
Better Embedded 2013 - Detecting Memory Leaks with Valgrind
 
Course 102: Lecture 2: Unwrapping Linux
Course 102: Lecture 2: Unwrapping Linux Course 102: Lecture 2: Unwrapping Linux
Course 102: Lecture 2: Unwrapping Linux
 
Course 102: Lecture 12: Basic Text Handling
Course 102: Lecture 12: Basic Text Handling Course 102: Lecture 12: Basic Text Handling
Course 102: Lecture 12: Basic Text Handling
 
Linux basic commands with examples
Linux basic commands with examplesLinux basic commands with examples
Linux basic commands with examples
 
Linux commands and file structure
Linux commands and file structureLinux commands and file structure
Linux commands and file structure
 
SHELL PROGRAMMING
SHELL PROGRAMMINGSHELL PROGRAMMING
SHELL PROGRAMMING
 
Regular Expression (Regex) Fundamentals
Regular Expression (Regex) FundamentalsRegular Expression (Regex) Fundamentals
Regular Expression (Regex) Fundamentals
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
 
Linux Presentation
Linux PresentationLinux Presentation
Linux Presentation
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
 
Linux systems - Linux Commands and Shell Scripting
Linux systems - Linux Commands and Shell ScriptingLinux systems - Linux Commands and Shell Scripting
Linux systems - Linux Commands and Shell Scripting
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Less vs sass
Less vs sassLess vs sass
Less vs sass
 
Unix/Linux Basic Commands and Shell Script
Unix/Linux Basic Commands and Shell ScriptUnix/Linux Basic Commands and Shell Script
Unix/Linux Basic Commands and Shell Script
 
PostgreSQL - Lección 7 - Usando los operadores de conjunto
PostgreSQL - Lección 7 - Usando los operadores de conjuntoPostgreSQL - Lección 7 - Usando los operadores de conjunto
PostgreSQL - Lección 7 - Usando los operadores de conjunto
 
Introduction to PowerShell
Introduction to PowerShellIntroduction to PowerShell
Introduction to PowerShell
 
Introduction to Perl - Day 1
Introduction to Perl - Day 1Introduction to Perl - Day 1
Introduction to Perl - Day 1
 
Regular Expressions
Regular ExpressionsRegular Expressions
Regular Expressions
 
Basic 50 linus command
Basic 50 linus commandBasic 50 linus command
Basic 50 linus command
 
Course 102: Lecture 4: Using Wild Cards
Course 102: Lecture 4: Using Wild CardsCourse 102: Lecture 4: Using Wild Cards
Course 102: Lecture 4: Using Wild Cards
 

Destaque (7)

Learning Grep
Learning GrepLearning Grep
Learning Grep
 
Linux basic commands tutorial
Linux basic commands tutorialLinux basic commands tutorial
Linux basic commands tutorial
 
Linux basic commands
Linux basic commandsLinux basic commands
Linux basic commands
 
Basic linux commands
Basic linux commandsBasic linux commands
Basic linux commands
 
Unix command-line tools
Unix command-line toolsUnix command-line tools
Unix command-line tools
 
Linux command ppt
Linux command pptLinux command ppt
Linux command ppt
 
Practical Example of grep command in unix
Practical Example of grep command in unixPractical Example of grep command in unix
Practical Example of grep command in unix
 

Semelhante a 15 practical grep command examples in linux

15 practical grep command examples in linux : unix
15 practical grep command examples in linux : unix15 practical grep command examples in linux : unix
15 practical grep command examples in linux : unix
chinkshady
 
101 3.7 search text files using regular expressions
101 3.7 search text files using regular expressions101 3.7 search text files using regular expressions
101 3.7 search text files using regular expressions
Acácio Oliveira
 
Lecture 18 - Regular Expressions.pdf
Lecture 18 - Regular Expressions.pdfLecture 18 - Regular Expressions.pdf
Lecture 18 - Regular Expressions.pdf
Saravana Kumar
 
Regular expressions
Regular expressionsRegular expressions
Regular expressions
Raghu nath
 
Unit 8 text processing tools
Unit 8 text processing toolsUnit 8 text processing tools
Unit 8 text processing tools
root_fibo
 

Semelhante a 15 practical grep command examples in linux (20)

15 practical grep command examples in linux : unix
15 practical grep command examples in linux : unix15 practical grep command examples in linux : unix
15 practical grep command examples in linux : unix
 
Spsl II unit
Spsl   II unitSpsl   II unit
Spsl II unit
 
grep.1.pdf
grep.1.pdfgrep.1.pdf
grep.1.pdf
 
grep.1.pdf
grep.1.pdfgrep.1.pdf
grep.1.pdf
 
Unix
UnixUnix
Unix
 
Using Regular Expressions in Grep
Using Regular Expressions in GrepUsing Regular Expressions in Grep
Using Regular Expressions in Grep
 
101 3.7 search text files using regular expressions
101 3.7 search text files using regular expressions101 3.7 search text files using regular expressions
101 3.7 search text files using regular expressions
 
Grep - A powerful search utility
Grep - A powerful search utilityGrep - A powerful search utility
Grep - A powerful search utility
 
Lecture 18 - Regular Expressions.pdf
Lecture 18 - Regular Expressions.pdfLecture 18 - Regular Expressions.pdf
Lecture 18 - Regular Expressions.pdf
 
Perl_Part4
Perl_Part4Perl_Part4
Perl_Part4
 
Plunging Into Perl While Avoiding the Deep End (mostly)
Plunging Into Perl While Avoiding the Deep End (mostly)Plunging Into Perl While Avoiding the Deep End (mostly)
Plunging Into Perl While Avoiding the Deep End (mostly)
 
101 3.7 search text files using regular expressions
101 3.7 search text files using regular expressions101 3.7 search text files using regular expressions
101 3.7 search text files using regular expressions
 
101 3.7 search text files using regular expressions
101 3.7 search text files using regular expressions101 3.7 search text files using regular expressions
101 3.7 search text files using regular expressions
 
Regular expressions
Regular expressionsRegular expressions
Regular expressions
 
3.7 search text files using regular expressions
3.7 search text files using regular expressions3.7 search text files using regular expressions
3.7 search text files using regular expressions
 
Course 102: Lecture 13: Regular Expressions
Course 102: Lecture 13: Regular Expressions Course 102: Lecture 13: Regular Expressions
Course 102: Lecture 13: Regular Expressions
 
Chapter 3: Introduction to Regular Expression
Chapter 3: Introduction to Regular ExpressionChapter 3: Introduction to Regular Expression
Chapter 3: Introduction to Regular Expression
 
Maxbox starter20
Maxbox starter20Maxbox starter20
Maxbox starter20
 
6
66
6
 
Unit 8 text processing tools
Unit 8 text processing toolsUnit 8 text processing tools
Unit 8 text processing tools
 

Mais de Teja Bheemanapally (20)

Teradata
TeradataTeradata
Teradata
 
Teradata
TeradataTeradata
Teradata
 
Linux or unix interview questions
Linux or unix interview questionsLinux or unix interview questions
Linux or unix interview questions
 
Linux notes
Linux notesLinux notes
Linux notes
 
Linux crontab
Linux crontabLinux crontab
Linux crontab
 
Linux01122011
Linux01122011Linux01122011
Linux01122011
 
Kernel (computing)
Kernel (computing)Kernel (computing)
Kernel (computing)
 
Installing red hat enterprise linux1
Installing red hat enterprise linux1Installing red hat enterprise linux1
Installing red hat enterprise linux1
 
In a monolithic kerne1
In a monolithic kerne1In a monolithic kerne1
In a monolithic kerne1
 
Common linuxcommandspocketguide07
Common linuxcommandspocketguide07Common linuxcommandspocketguide07
Common linuxcommandspocketguide07
 
50 most frequently used unix
50 most frequently used unix50 most frequently used unix
50 most frequently used unix
 
Basic commands
Basic commandsBasic commands
Basic commands
 
File system hierarchy standard
File system hierarchy standardFile system hierarchy standard
File system hierarchy standard
 
40 basic linux command
40 basic linux command40 basic linux command
40 basic linux command
 
15 practical grep command examples in linux
15 practical grep command examples in linux15 practical grep command examples in linux
15 practical grep command examples in linux
 
25 most frequently used linux ip tables rules examples
25 most frequently used linux ip tables rules examples25 most frequently used linux ip tables rules examples
25 most frequently used linux ip tables rules examples
 
Shell intro
Shell introShell intro
Shell intro
 
6 stages of linux boot process
6 stages of linux boot process6 stages of linux boot process
6 stages of linux boot process
 
Kernel (computing)
Kernel (computing)Kernel (computing)
Kernel (computing)
 
Installing red hat enterprise linux1
Installing red hat enterprise linux1Installing red hat enterprise linux1
Installing red hat enterprise linux1
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 

15 practical grep command examples in linux

  • 1. 15 Practical Grep Command Examples In Linux / UNIX 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 functionality. Earlier we discussed 15 practical examples for Linux find command, Linuxcommand line history and mysqladmin command. In this article let us review 15 practical 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_file THIS 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.
  • 2. 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_file this line is the 1st lower case line in this file. Two lines above this line is empty. 2. Checking for the given string in multiple 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 include the file name in front of the line that matched the specific pattern as shown below. When the Linux
  • 3. shell sees the meta character, it does the 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 insensitive search using grep -i Syntax: grep -i "string" FILE This is also a basic usage of the grep. This searches for the given string/pattern case insensitively. So it matches all the
  • 4. words such as “the”, “THE” and “The” case insensitively as shown below. $ grep -i "the" demo_file THIS 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 effectively. In the following example, it searches for all the pattern that starts with “lines” and ends with “empty” with anything in-between. i.e To search “lines[anything in- between]empty” in the demo_file. $ grep "lines.*empty" demo_file Two lines above this line is empty.
  • 5. From documentation of grep: A regular expression may be followed by one of several repetition operators:  ? The preceding item is optional and matched at most once.  * The preceding item will be matched zero or more times.  + The preceding item will be matched one or more times.  {n} The preceding item is matched exactly n times.  {n,} The preceding item is matched n or more times.  {,m} The preceding item is matched at most m times.  {n,m} The preceding item is matched at least n times, but not more than m times. 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 option. Just doing out a normal search will show out all the lines. The following example is the regular grep where it is searching for “is”. When you search for “is”, without any option it will show out “is”, “his”, “this” and everything which has the substring “is”. $ grep -i "is" demo_file THIS 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.
  • 6. 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 only for the word “is” and not for “this”. $ grep -iw "is" demo_file THIS 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/after/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 after the match. You might feel handy if grep can show you not only the matching lines but also the lines after/before/around the match. Please create the following demo_text file for this example.
  • 7. $ cat demo_text 4. 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. 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.
  • 8. 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 after match -A is the option which prints the specified N lines after the match as shown below. Syntax: grep -A <N> "string" FILENAME The following example prints the matched line, along with the 3 lines after it. $ grep -A 3 -i "example" demo_text Example to show the difference between WORD and word * 192.168.1.1 - single WORD * 192.168.1.1 - seven words.
  • 9. 6.2 Display N lines before match -B is the option which prints the specified N lines before the match. Syntax: grep -B <N> "string" FILENAME When you had option to show the N lines after match, you have the -B option for the opposite. $ grep -B 2 "single WORD" demo_text Example to show the difference between WORD and word * 192.168.1.1 - single WORD 6.3 Display N lines around match -C is the option which prints the specified N lines before the match. In some occasion you might want the match to be appeared with the lines from both the side. This options shows N lines in both the side(before & after) of match. $ grep -C 2 "Example" demo_text word - word consists of a sequence of letters, digits and underscores.
  • 10. Example to show the difference between WORD and word * 192.168.1.1 - single WORD 7. Highlighting the search using GREP_OPTIONS As grep prints out lines from the file by the pattern / string you had given, if you wanted it to highlight which part matches the line, then you need to follow the following way. When you do the following export you will get the highlighting of the matched searches. In the following example, it will highlight all the this when you set the GREP_OPTIONS environment variable as shown below. $ export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8' $ grep this demo_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. 8. Searching in all files recursively using grep -r
  • 11. When you want to search in all the files under the current directory and its sub directory. -r option is the one which you need to use. The following 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 options to show the lines matched, to show the lines before match, and to show the lines after match, and to highlight match. So definitely You’d also want the option -v to do invert match. When you want to display the lines which does not matches the given string/pattern, use the option -v as shown below. This example will display all the lines that did not match the word “go”. $ grep -v "go" demo_text 4. 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.
  • 12. 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 pattern. Syntax: grep -v -e "pattern" -e "pattern" $ cat test-file.txt a b c d
  • 13. $ grep -v -e "a" -e "b" -e "c" test-file.txt d 11. Counting the number of matches using grep -c When you want to count that how many lines matches the given pattern/string, then use the option -c. Syntax: grep -c "pattern" filename $ grep -c "go" demo_text 6 When you want do find out how many lines matches the pattern $ grep -c this demo_file 3 When you want do find out how many lines that does not match the pattern $ grep -v -c this demo_file
  • 14. 4 12. Display only the file names which matches the given pattern using grep -l If you want the grep to show out only the file names which matched the given pattern, use the -l (lower-case L) option. When you give multiple files to the grep as input, it displays the names of file which contains the text that matches the pattern, will be very handy when you try to find some notes in your whole directory structure. $ grep -l this demo_* demo_file demo_file1 13. Show only the matched string By default grep will show the line which matches the given pattern/string, but if you want the grep to show out only the matched string of the pattern then use the -o option. It might not be that much useful when you give the string straight forward. But it becomes very useful when you give a regex pattern and trying to see what it matches as $ grep -o "is.*line" demo_file is line is the 1st lower case line
  • 15. is line is is the last line 14. Show the position of match in the line When you want grep to show the position where it matches the pattern in the file, use the following options as Syntax: grep -o -b "pattern" file $ cat temp-file.txt 12345 12345 $ grep -o -b "3" temp-file.txt 2:3 8:3 Note: The output of the grep command above is not the position in the line, it is byte offset of the whole file.
  • 16. 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 option to utilize this feature. $ grep -n "go" demo_text 5: * e - go to the end of the current word. 6: * E - go to the end of the current WORD. 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. Advanced Regular Expressions in Grep Command with 10 Examples – Part II by SASIKALA on JANUARY 17, 2011
  • 17. In our previous regular expression part 1 article, we reviewed basic reg-ex with practical examples. But we can do much more with the regular expressions. You can often accomplish complex tasks with a single regular expression instead of writing several lines of codes. When applying a regex to a string, the regex engine will start at the first character of the string. It will try all possible permutations of the regular expression at the first character. Only if all possibilities have been tried and found to fail, will the regex engine continue with the second character in the text. The regex will try all possible permutations of the regex, in exactly the same order. The result is that the regex-directed engine will return the leftmost match. In this article, let us review some advanced regular expression with examples. Example 1. OR Operation (|) Pipe character (|) in grep is used to specify that either of two whole subexpressions occur in a position. “subexpression1|subexpression2″ matches either subexpression1 or subexpression2.
  • 18. The following example will remove three various kind of comment lines in a file using OR in a grep command. First, create a sample file called “comments”. $ cat comments This file shows the comment character in various programming/scripting languages ### Perl / shell scripting If the Line starts with single hash symbol, then its a comment in Perl and shell scripting. ' VB Scripting comment The line should start with a single quote to comment in VB scripting. // C programming single line comment. Double slashes in the beginning of the line for single line comment in C. The file called “comments” has perl,VB script and C programming comment lines. Now the following grep command searches for the line which does not start with # or single quote (‘) or double front slashes (//).
  • 19. $ grep -v "^#|^'|^//" comments This file shows the comment character in various programming/scripting languages If the Line starts with single hash symbol, then its a comment in Perl and shell scripting. The line should start with a single quote to comment in VB scripting. Double slashes in the beginning of the line for single line comment in C. Example 2. Character class expression As we have seen in our previous regex article example 9, list of characters can be mentioned with in the square brackets to match only one out of several characters. Grep command supports some special character classes that denote certain common ranges. Few of them are listed here. Refer man page of grep to know various character class expressions. [:digit:] Only the digits 0 to 9 [:alnum:] Any alphanumeric character 0 to 9 OR A to Z or a to z. [:alpha:] Any alpha character A to Z or a to z. [:blank:] Space and TAB characters only.
  • 20. These are always used inside square brackets in the form [[:digit:]]. Now let us grep all the process Ids of ntpd daemon process using appropriate character class expression. $ grep -e "ntpd[[[:digit:]]+]" /var/log/messages.4 Oct 28 11:42:20 gstuff1 ntpd[2241]: synchronized to LOCAL(0), stratum 10 Oct 28 11:42:20 gstuff1 ntpd[2241]: synchronized to 15.11.13.123, stratum 3 Oct 28 12:33:31 gstuff1 ntpd[2241]: synchronized to LOCAL(0), stratum 10 Oct 28 12:50:46 gstuff1 ntpd[2241]: synchronized to 15.11.13.123, stratum 3 Oct 29 07:55:29 gstuff1 ntpd[2241]: time reset -0.180737 s Example 3. M to N occurences ({m,n}) A regular expression followed by {m,n} indicates that the preceding item is matched at least m times, but not more than n times. The values of m and n must be non-negative and smaller than 255. The following example prints the line if its in the range of 0 to 99999. $ cat number
  • 21. 12 12345 123456 19816282 $ grep "^[0-9]{1,5}$" number 12 12345 The file called “number” has the list of numbers, the above grep command matches only the number which 1 (minimum is 0) to 5 digits (maximum 99999). Note: For basic grep command examples, read 15 Practical Grep Command Examples. Example 4. Exact M occurence ({m}) A Regular expression followed by {m} matches exactly m occurences of the preceding expression. The following grep command will display only the number which has 5 digits. $ grep "^[0-9]{5}$" number
  • 22. 12345 Example 5. M or more occurences ({m,}) A Regular expression followed by {m,} matches m or more occurences of the preceding expression. The following grep command will display the number which has 5 or more digits. $ grep "[0-9]{5,}" number 12345 123456 19816282 Note: Did you know that you can use bzgrep command to search for a string or a pattern (regular expression) on bzip2 compressed files. Example 6. Word boundary (b) b is to match for a word boundary. b matches any character(s) at the beginning (bxx) and/or end (xxb) of a word, thus btheb will find the but not thet, but bthe will find they. # grep -i "btheb" comments This file shows the comment character in various programming/scripting languages
  • 23. If the Line starts with single hash symbol, The line should start with a single quote to comment in VB scripting. Double slashes in the beginning of the line for single line comment in C. Example 7. Back references (n) Grouping the expressions for further use is available in grep through back-references. For ex, ([0-9])1 matches two digit number in which both the digits are same number like 11,22,33 etc., # grep -e '^(abc)1$' abc abcabc abcabc In the above grep command, it accepts the input the STDIN. when it reads the input “abc” it didnt match, The line “abcabc” matches with the given expression so it prints. If you want to use Extended regular expression its always preferred to use egrep command. grep with -e option also works like egrep, but you have to escape the special characters like paranthesis.
  • 24. Note: You can also use zgrep command to to search inside a compressed gz file. Example 8. Match the pattern “Object Oriented” So far we have seen different tips in grep command, Now using those tips, let us match “object oriented” in various formats. $ grep "OO|([oO]bject( |-)[oO]riented)" The above grep command matches the “OO”, “object oriented”, “Object-oriented” and etc., Example 9. Print the line “vowel singlecharacter samevowel” The following grep command print all lines containing a vowel (a, e, i, o, or u) followed by a single character followed by the same vowel again. Thus, it will find eve or adam but not vera. $ cat input evening adam vera
  • 25. $ grep "([aeiou]).1" input evening adam Example 10. Valid IP address The following grep command matches only valid IP address. $ cat input 15.12.141.121 255.255.255 255.255.255.255 256.125.124.124 $ egrep 'b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0- 9]?.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' input 15.12.141.121 255.255.255.255
  • 26. In the regular expression given above, there are different conditions. These conditioned matches should occur three times and one more class is mentioned separately. 1. If it starts with 25, next number should be 0 to 5 (250 to 255) 2. If it starts with 2, next number could be 0-4 followed by 0-9 (200 to 249) 3. zero occurence of 0 or 1, 0-9, then zero occurence of any number between 0-9 (0 to 199) 4. Then dot character