Hi im new to bash scripting I want to know what does the regex expression do ??


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Hi im new to bash scripting I want to know what does the regex expression do ??
# 1  
Old 10-26-2012
Hi im new to bash scripting I want to know what does the regex expression do ??

# check host value regex='^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$' if [ "$(echo $host | grep '[A-Za-z]')" != "" ]; then if [[ "$(host $host)" =~ "not found" ]]; then echo host $host not found exit 4 fi elif [[ ! $host =~ $regex ]]; then echo $host is an invalid host address exit 5 fi
# 2  
Old 10-26-2012
This should explain the regex in variable(regex):

Code:
Regular Expression description

^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$

Options: ^ and $ match at line breaks

Assert position at the beginning of a line (at beginning of the string or after a line break character)
Match the regular expression below and capture its match into backreference number 1 - ([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
   Match either the regular expression below (attempting the next alternative only if this one fails) - [1-9]
      Match a single character in the range between "1" and "9" - [1-9]
   Or match regular expression number 2 below (attempting the next alternative only if this one fails) - [1-9][0-9]
      Match a single character in the range between "1" and "9" - [1-9]
      Match a single character in the range between "0" and "9" - [0-9]
   Or match regular expression number 3 below (attempting the next alternative only if this one fails) - 1[0-9][0-9]
      Match the character "1" literally - 1
      Match a single character in the range between "0" and "9" - [0-9]
      Match a single character in the range between "0" and "9" - [0-9]
   Or match regular expression number 4 below (attempting the next alternative only if this one fails) - 2[0-4][0-9]
      Match the character "2" literally - 2
      Match a single character in the range between "0" and "4" - [0-4]
      Match a single character in the range between "0" and "9" - [0-9]
   Or match regular expression number 5 below (the entire group fails if this one fails to match) - 25[0-5]
      Match the characters "25" literally - 25
      Match a single character in the range between "0" and "5" - [0-5]
Match the regular expression below and capture its match into backreference number 2 - (\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}
   Exactly 3 times - {3}
   Note: You repeated the capturing group itself.  The group will capture only the last iteration.  Put a capturing group around the repeated group to capture all iterations. - {3}
   Match the character "." literally - \.
   Match the regular expression below and capture its match into backreference number 3 - ([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
      Match either the regular expression below (attempting the next alternative only if this one fails) - [0-9]
         Match a single character in the range between "0" and "9" - [0-9]
      Or match regular expression number 2 below (attempting the next alternative only if this one fails) - [1-9][0-9]
         Match a single character in the range between "1" and "9" - [1-9]
         Match a single character in the range between "0" and "9" - [0-9]
      Or match regular expression number 3 below (attempting the next alternative only if this one fails) - 1[0-9][0-9]
         Match the character "1" literally - 1
         Match a single character in the range between "0" and "9" - [0-9]
         Match a single character in the range between "0" and "9" - [0-9]
      Or match regular expression number 4 below (attempting the next alternative only if this one fails) - 2[0-4][0-9]
         Match the character "2" literally - 2
         Match a single character in the range between "0" and "4" - [0-4]
         Match a single character in the range between "0" and "9" - [0-9]
      Or match regular expression number 5 below (the entire group fails if this one fails to match) - 25[0-5]
         Match the characters "25" literally - 25
         Match a single character in the range between "0" and "5" - [0-5]
Assert position at the end of a line (at the end of the string or before a line break character) - $

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Regex Expression Replace

I have a XML file where there is a tag with like <wd:address_line_1>1234 Street</wd:address_line_1> I want to replace the values "1234 Street" with "Test Data". Different people have different address lines and i want to replace with a fixed value to mask the file. I was trying to use sed... (7 Replies)
Discussion started by: dr46014
7 Replies

2. Shell Programming and Scripting

awk regex expression works in AIX but not in Linux

I have following expression: echo "Sun 12 Jul BST 2014\nSun 12 Jul 2014\nSun 12 Jul IS 2014" | awk '/(Sun)+( 12)+( Jul )+({3} )?(2014)/{print;}' I ran above code in AIX box and output is as follows Sun 12 Jul BST 2014 Sun 12 Jul 2014 I ran above code in Linux box and output is as... (8 Replies)
Discussion started by: kamlesh_pradhan
8 Replies

3. Emergency UNIX and Linux Support

Regular expression (regex) clean up text

Hi, Server - MEDIAWIKI - MYSQL - CENTOS 5 - PHP5 I have a database import of close to a million pages into my wiki, mediawiki site, the format that were left with is not pretty, and I need to find a way to clean this up and present it nicely... I think regex is the best option as I can... (1 Reply)
Discussion started by: lawstudent
1 Replies

4. Shell Programming and Scripting

awk variables in regex expression ?

Hello, Could someone explain why this one returns nothing: $ x=/jon/ $ echo jon | awk -v xa=$x '$1~xa {print}' $ while the following works fine: $ x=jon $ echo jon | awk -v xa=$x '$1==xa {print}' $ jon and the following works fine: $ echo jon | awk '$1~/jon/ {print}' $ jon ... (3 Replies)
Discussion started by: vilius
3 Replies

5. Shell Programming and Scripting

help with simple regex expression

I am trying to grep the following line in a file using a bash shell: (..) admin1::14959:::::: (..) It works with the following expression (as expected) # cat file | grep ^*:: admin1::14959:::::: but it does not work with (not expected) # cat /etc/shadow | grep ^+:: I assume the... (2 Replies)
Discussion started by: schms
2 Replies

6. Shell Programming and Scripting

Creating a regex expression

Good morning all!! In my code I and looking through file /etc/syslog.congf and printing every line that has /var/log in it. I need to turn the if 9$line) into a regex code instead. #!/usr/bin/perl @file= 'cat /etc/syslog.conf'; //when foreach $line (@file){ if ($line =~... (3 Replies)
Discussion started by: bigben1220
3 Replies

7. UNIX for Advanced & Expert Users

Regular expression / regex substition on Unicode text

I have a large file encoded in Unicode that I need to convert to CSV. In general, I know how to do this by regular expression substitutions using sed or Perl, but one problem I am having is that I need to put a quotation mark at the end of each line to protect the last field. The usual regex... (1 Reply)
Discussion started by: thomas.hedden
1 Replies

8. Shell Programming and Scripting

Regular expression (regex) required

I want to block all special characters except alphanumerics.. and "."(dot ) character currently am using // I want to even block only single dot or multiple dots.. ex: . or .............. should be blocked. please provide me the reg ex. ---------- Post updated at 05:11 AM... (10 Replies)
Discussion started by: shams11
10 Replies

9. Shell Programming and Scripting

Replace if regex on specific column matches expression?

I am attempting to convert rewrite rules to Nginx, and since due to the mass amount of rewrites we must convert, I've been trying to write a script to help me on a specific part, easily. So far I have this: rewrite ^action/static/(+)/$ staticPage.php?pg=$1&%$query_string; What I want done... (5 Replies)
Discussion started by: EXT3FSCK
5 Replies

10. Shell Programming and Scripting

how to use regular expression in Bash Shell Scripting

Hi, Actually i have written one test.sh (shell program) in bash. Here i have a variables $a which stored the value package1. Now I want to write a regular expression inside the if command that "if $a variable contains letter p in the begining of the value package1 then it is coming true.... (5 Replies)
Discussion started by: sunitachoudhury
5 Replies
Login or Register to Ask a Question