regular expression for MAC address validation


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting regular expression for MAC address validation
# 15  
Old 03-08-2007
mine is ok, even with backticks.
# 16  
Old 03-08-2007
make sure you have no leading/trailing 'spaces' once you do your 'data entry' - you're anchoring at the beginning and at the end of your 'entered' string.
# 17  
Old 03-08-2007
ive typed it in manually still no good (no spaces at beginning or end).....my script again is ....


Code:
#!/bin/ksh
echo enter mac
read mac
result=$( echo $mac | sed -n "/^\([0-9A-Z][0-9A-Z]:\)\{5\}[0-9A-Z][0-9A-Z]$/p" )
if [ -z $result ]; then
  echo mac doesnt comply
else
echo mac is fine
fi


Just out of interest if i run the command that was posted earlier at the command line
Code:
echo 00:60:08:C4:99:AA | sed -n "/^\([0-9A-Z][0-9A-Z]:\)\{5\}[0-9A-Z][0-9A-Z]$/p"

i get no output at all ...is this what is expected? ....if i remove the -n at just outputs what ever mac address i put in the begginning of the command (even if its invalid) ie....

Code:
bash # echo sausages | sed "/^\([0-9A-Z][0-9A-Z]:\)\{5\}[0-9A-Z][0-9A-Z]$/p"
bash # sausages
bash #

surely that isnt supposed to happen is it ??
# 18  
Old 03-08-2007
OK this works perfectly (using egrep rather than sed)


Code:
#!/bin/ksh
echo enter mac
read mac
result=$( echo $mac | egrep ^[0-9a-f][0-9a-f]\:[0-9a-f][0-9a-f]\:[0-9a-f][0-9a-f]\:[0-9a-f][0-9a-f]\:[0-9a-f][0-9a-f]\:[0-9a-f][0-9a-f]$ )
if [ -z $result ]; then
  echo mac doesnt comply
else
echo mac is fine
fi

# 19  
Old 03-08-2007
Quote:
Just out of interest if i run the command that was posted earlier at the command line
You should get the following output
Code:
$ echo 00:60:08:C4:99:AA | sed -n "/^\([0-9A-Z][0-9A-Z]:\)\{5\}[0-9A-Z][0-9A-Z]$/p"
00:60:08:C4:99:AA

Quote:
i get no output at all ...is this what is expected? ....if i remove the -n at just outputs what ever mac address i put in the begginning of the command (even if its invalid) ie....
-n option prevents the default output i.e whatever the string processed by the sed command

Quote:
bash # echo sausages | sed "/^\([0-9A-Z][0-9A-Z]:\)\{5\}[0-9A-Z][0-9A-Z]$/p"
bash # sausages
bash #

surely that isnt supposed to happen is it ??
This is correct.
# 20  
Old 03-09-2007
Quote:
Originally Posted by matrixmadhan
You cannot really use nested backticks! Smilie

use this,
Code:
result=$( echo 00:60:08:C4:99:12 | sed -n "/^\([0-9A-Z][0-9A-Z]:\)\{5\}[0-9A-Z][0-9A-Z]$/p" )
if [ -z $result ]; then
  echo $result
fi


This was wrong actually as said to ghostdog

check this thread
# 21  
Old 03-09-2007
Quote:
Originally Posted by matrixmadhan
This was wrong actually as said to ghostdog

check this thread
backticks are also viable.
Code:
# result=$( echo 00:60:08:C4:99:12 | sed -n "/^\([0-9A-Z][0-9A-Z]:\)\{5\}[0-9A-Z][0-9A-Z]$/p" )
# echo $result
00:60:08:C4:99:12
# result=`echo 00:60:08:C4:99:12 | sed -n "/^\([0-9A-Z][0-9A-Z]:\)\{5\}[0-9A-Z][0-9A-Z]$/p"`
# echo $result
00:60:08:C4:99:12

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. IP Networking

MAC Address - Four Interfaces with the same MAC Address

four interfaces with ifconfig all interfaces have the same mac. If is not set for unique. but it still works. what difference does it make to have all macs the same or different? (4 Replies)
Discussion started by: rrodgers
4 Replies

2. UNIX for Advanced & Expert Users

sed: -e expression #1, char 0: no previous regular expression

Hello All, I'm trying to extract the lines between two consecutive elements of an array from a file. My array looks like: problem_arr=(PRS111 PRS213 PRS234) j=0 while } ] do k=`expr $j + 1` sed -n "/${problem_arr}/,/${problem_arr}/p" problemid.txt ---some operation goes... (11 Replies)
Discussion started by: InduInduIndu
11 Replies

3. Programming

Perl: How to read from a file, do regular expression and then replace the found regular expression

Hi all, How am I read a file, find the match regular expression and overwrite to the same files. open DESTINATION_FILE, "<tmptravl.dat" or die "tmptravl.dat"; open NEW_DESTINATION_FILE, ">new_tmptravl.dat" or die "new_tmptravl.dat"; while (<DESTINATION_FILE>) { # print... (1 Reply)
Discussion started by: jessy83
1 Replies

4. Shell Programming and Scripting

Regular expression to extract ipv6 address

Hi all , I have a string in my weblog xheader v6-day-2011:xx:yy:zz:qq:qq:ww:ee:rr My requirement is to lookup the sting v6-day-2011 in this header and if found would like to extract the V6 ip part . v6-day-2011 is always constant for a ipv6 entry so i would like to extract every thing... (4 Replies)
Discussion started by: jambesh
4 Replies

5. Shell Programming and Scripting

Integer expression expected: with regular expression

CA_RELEASE has a value of 6. I need to check if that this is a numeric value. if not error. source $CA_VERSION_DATA if * ] then echo "CA_RELESE $CA_RELEASE is invalid" exit -1 fi + source /etc/ncgl/ca_version_data ++ CA_PRODUCT_ID=samxts ++ CA_RELEASE=6 ++ CA_WEEK_NO=7 ++... (3 Replies)
Discussion started by: ketkee1985
3 Replies

6. IP Networking

Tracing a MAC address to IP address: Solaris

Hi there I lost connectivity to one of our remote systems and when I checked the messages log I found the following: Aug 10 23:42:34 host xntpd: time reset (step) 1.681729 s Aug 16 13:20:51 host ip: WARNING: node "mac address" is using our IP address x.x.x.x on aggr1 Aug 16 13:20:51 host... (9 Replies)
Discussion started by: notreallyhere
9 Replies

7. Linux

Regular expression to extract "y" from "abc/x.y.z" .... i need regular expression

Regular expression to extract "y" from "abc/x.y.z" (2 Replies)
Discussion started by: rag84dec
2 Replies

8. Shell Programming and Scripting

IP address validation function

Hi does anybody have a ksh/sh/bash function that i can embed into my script that i could use to validate an inputted IP address, I tried using one big long regular expression but it got very long and complicated ie #!/bin/ksh echo " Please enter your IP address" read IP ---some function... (6 Replies)
Discussion started by: hcclnoodles
6 Replies

9. IP Networking

How to Achive IP address through MAC(Ethernet) address

Hi sir, i want to make such programe which takes MAC(Ethernet) address of any host & give me its IP address....... but i'm nt getting that how i can pass the MAC address to Frame........ Please give me an idea for making such program... Thanks & regards Krishna (3 Replies)
Discussion started by: krishnacins
3 Replies

10. Shell Programming and Scripting

Regular Expression + Aritmetical Expression

Is it possible to combine a regular expression with a aritmetical expression? For example, taking a 8-numbers caracter sequece and casting each output of a grep, comparing to a constant. THX! (2 Replies)
Discussion started by: Z0mby
2 Replies
Login or Register to Ask a Question