Regular Expression in Linux/Unix Part 2
This is our second part on Regular Expressions in Linux. Please have a look at our first part here.
Interval Regular expressions
These are used to mention no of character/character set reputation info. Note that interval regular expression and extended reg require -E option with grep
Note: In order to use this set of regular expressions you have to us -E with grep command and -r option with sed commands
{n} –n occurrence of previous character
{n,m} – n to m times occurrence of previous character
{m, } –m or more occurrence of previous character.
Example 1: Find all the file names which contain “t” and t repeats for 3 times consecutively.
ls -l | grep -E ‘t{3}’
-E option is used to extend regexp understanding for grep.
Example 2: Find all the file names which contain l letter in filename with 1 occurrence to 3 occurrence consecutively.
ls -l | grep -E ‘l{1,3}’
Example 3: Find all the file names which contains k letter 5 and more in a file name.
ls -l | grep -E 'k{5,}'
This is bit tricky, let me explain this. Actually we given a range i.e 5 to infinity(Just given only comma after 5).
Extended regular expressions
These regular expressions extend the regular expression features.
Note:In order to use this set of regular expressions you have to us -E with grep command and -r option with sed commands
+ –one more occurrence of previous character
| — or option, we can specify either a character to present in the pattern.
? — 0 or one occurrence of previous character
() — grouping of character set.
Example 1: Find all the files which contains f letter, one more occurrences.
ls -l | grep -E ‘f+’
Example 2: Find all the files which may contain a or b in its file name
ls -l | grep -E ‘a|b’
Example 3: Find all the files which may contain t or 1 occurrence of t in filename
ls -l | grep -E ‘t?’
for example i have below files
test
best
see
do
my grep command will list test, best files as output.
Note: My grep output contain all these files though see and do files do not contain t, the is because we given ? which will search for 0 or 1 occurrence of previous character. See and do contains 0 t’s in its name, so it will find these files too.
Example 4: Find all the files which contains ab in the sequence
ls -l | grep -E ‘(ab)’
This will give all the files which contains ab in the file name consequently.
Please stay tuned to our next article on grep command and how to use it.
Learn SED with examples | The Linux Juggernaut
[...] This is our second post on SED, which is a Stream EDitor. Please find our Previous post on SED. You can find our other posts on RegExp basics and extended. [...]
SED(Stream EDitor ) Explained in detail for Linux/Unix
[...] From here after if you want to get grip on SED you should know RegExp. Please find RegExp basics here and here. [...]
“{n,m} – 1 to 3 times occurrence of previous character” should say “n to m”
Hi Murat,
Thanks for the hands-up, updated the post.
Thanks,
Surendra.
Regular expression for Linux Shell scripting
[...] Note: No need to use -E to use these regular expressions with grep. We have egrep and fgrep which are equal to “grep -E”. I suggest you just concentrate on grep to complete your work, don’t go for other commands if grep is there to resolve your issues. Stay tuned to our next post on Regular expressions. [...]
Nice, simple and clear. Thanks !
thanks..!