Tuesday, October 5, 2010

How to use Regular Expression in Unix Linux

One of the most powerful tools available to programmers are Regular Expressions, if you are good with regular expressions you can solve many day to day problem extremely quickly e.g. find all the lines with ERROR in the log file , find the count of any particular ID in the log file , find exceptions etc.

Regular Expression Example in UNIX

a regular expression is a generic concept which has implemented in many different languages and many different tools including Java , here is some of the tools and languages which use a regular expression.

  • The vi editor which comes standard with the Unix/Linux operating system.
  • Any decent programmer's editor e.g. EditPlus
  • The grep command found standard on many operating systems including Unix/Linux
  • The Perl programming language.  
  • The PHP programming language. 

regular Even if you feel regular expression is complex and hard to learn I would suggest to familiarize with at least basic set of regex and try to use it as much as possible and later you will only want to learn more and more to do the stuff quickly.

here are some of the basic regex and their examples:

1) you want to find ERROR in a log file in Linux ?    
grep ERROR logfile

2) you want to find lines starts with ERROR ?
grep ^ERROR logfile     (^ is used to find for starts with)

3) you want to find lines ends with ERROR ?
grep ERROR$ logfile     ($ is used to find for ends with)

4) you want to find empty lines in a log file ?
grep ^$ logfile

5) you want to match upper or lower case ERROR ?
grep [Ee]RROR logfile               ([] is used to include letters]



6) find all lines that contain Error or Exception ?
egrep ERROR|Exception logfile   ( | is used for OR condition)

7) Match the letter E when it appears at least 3 times in a row but possibly 4 or more times in a row: E {3,} 

8) Match the letter E when it appears 3 times in a row or 6 times in a row or anything in between. E{3,6}

9)Match E when it appears 1 or more times in a row.
E+ 

10) (E+ and E{1,} mean exactly the same thing!)


Further Learning
Linux Command Line Interface (CLI) Fundamentals
Linux System Administration Fundamentals
How Linux Works: What Every SuperUser Should Know

Related UNIX Command Tutorials
  • 10 examples of find command in UNIX (examples)
  • 10 examples of grep command in UNIX (examples)
  • 10 examples of date command in Linux (examples)
  • How to get IP address from hostname and vice-versa in Linux (command)
  • 10 examples of xargs command in Linux (examples)
  • 10 examples of tar command in UNIX (examples)
  • 10 examples of Vim in UNIX (examples)
  • How to create, update and delete soft link in UNIX (command)
  • 5 examples of sort command in Linux (examples)
  • 5 examples of kill command in Linux (examples)
  • 10 examples of chmod command in UNIX (examples)
  • 10 tips to work fast in UNIX? (tips)

Thanks for reading this article so far. If you like this article then please share with your friends and colleagues. If you have any questions or feedback then please drop a note.

1 comment :

Anonymous said...

Could you please suggest, how to search for a distinct key value pairs ?

Ex:
--
key1=10
key2=20
key1=5
key3=15
key1=8
--
Now, I would like to grep for key1 different values.


Thanks much.

Post a Comment