using sed to get IP-address


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting using sed to get IP-address
# 1  
Old 10-17-2008
using sed to get IP-address

Hi folks!

I need to get an ip address of a string that has the same apperance in every case. The string looks like this:

$node="node_ip:109.50.89.211; node:j20"

What I want to do is to extract the IP-address from this string using regular expression. Since I havn't worked much with regexp's I dont really know how to tackle this.

However, if one is able to extract ip from the pattern:
[0-9]{1-3 digits}.[0-9]{1-3 digits}.[0-9]{1-3 digits}.[0-9]{1-3 digits}
somehow...

Does any of you know how to do this?
# 2  
Old 10-17-2008
Try out this...

Code:
node="node_ip:109.50.89.211; node:j20"

echo $node|awk -F";" '{print $1}'|awk -F":" '{print $2}'

will return the IP.
# 3  
Old 10-17-2008
Code:
$ echo '$node="node_ip:109.50.89.211; node:j20"' | perl -pe 's/^.*node_ip:(\d{1,3}(\.\d{1,3}){3});.*$/$1/'  
109.50.89.211

MrC
# 4  
Old 10-17-2008
Thanks a lot for a quick reply!

This works really well, and I said that the string looks the same in each cases but thats not entierly true.. for some cases is is changed so that node_ip and node is switched. And then this code prints out j20 instead.


I tried laborating with the sed command instead to get it more dynamic.
Code:
sh-3.00$ echo $node | sed 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}//'

prints out: node_ip:; node:j20

So I actually got the IP to be excluded from it Smilie now i just need to do it the other way around, remove all that Not matches the regexp. Any ideas on how one can negate this os so?

Last edited by eeriale; 10-17-2008 at 06:26 AM..
# 5  
Old 10-17-2008
With sed:

Code:
node="node_ip:109.50.89.211; node:j20"

echo "$node"|sed 's/.*:\(.*\);.*/\1/'

Regards
# 6  
Old 10-17-2008
A regular expression can be written lax, potentially matching unexpected data, or can be written strictly, matching only exact data. The key is to know what your data looks like and describe it accurately.
MrC
# 7  
Old 10-17-2008
Quote:
Originally Posted by Franklin52
With sed:

Code:
node="node_ip:109.50.89.211; node:j20"

echo "$node"|sed 's/.*:\(.*\);.*/\1/'

Regards


Thanks for reply,

But as i said earlier this does not work if you change order of node_ip and node. i.e string looks like this:
"node:j20; node_ip:109.50.89.211"
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Sed: -e expression #1, char 20: unterminated address regex

I am trying to add word in last of particular line. the same command syntex is running on prompt. but in bash script give error."sed: -e expression #1, char 20: unterminated address regex" Please help. for i in `cat servername`; do ssh -q -t root@$i sed -i '/simple_allow_groups =/s/$/,... (4 Replies)
Discussion started by: yash_message
4 Replies

2. Shell Programming and Scripting

Sed: -e expression #1, char 16: unterminated address regex

I am trying to grep for a particular text (Do action on cell BL330) in a text file(sample.gz) which is searched in the content filtered by date+timestamp (2016-09-14 01:09:56,796 to 2016-09-15 04:10:29,719) on a remote machine and finally write the output into a output file on a local machine. ... (23 Replies)
Discussion started by: rbadveti
23 Replies

3. Shell Programming and Scripting

IP Address Modification through awk/sed

Hi, I have to modify the 2nd and 3rd octet of the IP address through awk/sed. For Example: Given IP is : 10.205.22.254, it should be modified as 10.105.100.254 through awk/sed. Kindly help me on this and let me know if you have any questions. Thanks in advances. (2 Replies)
Discussion started by: kumarbka
2 Replies

4. Solaris

Find and sed for an email address in Solaris 10

in Solaris 10 I am able to run: find . -type f -name "copy*" exec grep example.com {} \; and I get results. but when I try to find and sed: find . -type f -name "copy*" exec sed -e 's/user@example\.com/user2@example\.com' {} \; the command executes correctly but doesn't change... (6 Replies)
Discussion started by: os2mac
6 Replies

5. Shell Programming and Scripting

HELP with awk or sed. Need to replace all IP address by 2

Hi, In a file, I have several time <IP>232.0.1.164</IP> ... <IP>232.0.1.135</IP> I need to replace all the random IP addresses , by 239.0.0.1 and 239.0.0.2 , alternatively. I try this grep "<IP>" tsp.xml | awk '{if(NR % 2)print $0}' | cut -d"<" -f2 | cut -d">" -f2 ... (3 Replies)
Discussion started by: FredMo
3 Replies

6. Shell Programming and Scripting

SED With Regex to extract Email Address

Hi Folks, In my program, I have a variable which consists of multiple lines. i need to use each line as an input. My intention is to extract the email address of the user in each line and use it to process further. The email address could be anywhere in the whole line. But there will be only... (5 Replies)
Discussion started by: ragz_82
5 Replies

7. Shell Programming and Scripting

Get Local IP address using Sed, Awk

Hi All, how to get solaris box local ip addresss in variable, using sed or awk utlities. Thanks, Mani Muthu (7 Replies)
Discussion started by: k_manimuthu
7 Replies

8. UNIX for Dummies Questions & Answers

grep or sed help for a word and an IP address

I would like to grab only designates and the IP address next to it. I can also live with client-ip=xx.xx.xx.xx Any help is much appreciated. line to grep or sed: Received-SPF: pass (google.com: domain of support@uhb-hosting.de designates 80.67.28.12 as permitted sender)... (7 Replies)
Discussion started by: tigta09
7 Replies

9. UNIX for Dummies Questions & Answers

$Variable address in sed

I'm attempting to append a line after a specific address with sed. If I type in the address eg.3 then it will append after the third line. I can't get it to work with a variable though. Does anyone know how to do it please? sed '/3/a\ text' filename :) sed '/\$address/a\ text' filename... (8 Replies)
Discussion started by: Sniper Pixie
8 Replies

10. Shell Programming and Scripting

sed: Multiple Commands applied to an address

Trying to write a sed command that applies multiple replacements to a specific address. Need a second pair of eyes I guess cause my syntax appears to be correct (obviously not though) I am getting an error. Any Help would be appreciated! Thanks in advance. sed -f foo envOracle sed: Function... (2 Replies)
Discussion started by: google
2 Replies
Login or Register to Ask a Question