Identify IP address from a text file and replace it with new address

Hello All,
I want to write a script by which I can open up a text file,scan
through it,find the line which contains the word ‘test_site’,get the
IP address corresponding to that word, replace that IP with another IP
address and then save and close the file.
Are there any commands in Ruby to identify IP address from a string?

Thanks in advance

Regards
Chandrika

Hi!

I think you can use the following code:

text=IO.read(filename_of_file_with_ip)
text.gsub!(/test_site\s*\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}/i,“0.0.0.0”)

0.0.0.0 - it’s my new ip
f=File.new(“outtxt”,“w”)
f.write(text)
f.close

2010/11/8 Chandu80 [email protected]:

Hello All,
I want to write a script by which I can open up a text file,scan
through it,find the line which contains the word ‘test_site’,get the
IP address corresponding to that word, replace that IP with another IP
address and then save and close the file.
Are there any commands in Ruby to identify IP address from a string?

maybe a regex is useful, though that’s not rigorous enough.

irb(main):001:0> s=“ip addr:12.34.56.78”
=> “ip addr:12.34.56.78”

irb(main):002:0> s.scan /\d+.\d+.\d+.\d+/
=> [“12.34.56.78”]

On 11/09/2010 08:07 AM, Chandu80 wrote:

Thanks for the response.It did work.However isn’t there a provision to
edit the same file and save it?

ruby -p -i.bak -e ‘gsub /\d{1,3}(?:.\d{1,3}){3}/, “XX.XX.XX.XX”’ a_file

If you omit “.bak” there is no backup. Please see “ruby -h”.

Kind regards

robert

On Nov 8, 5:48pm, Alexey B. [email protected] wrote:

f.write(text)

Are there any commands in Ruby to identify IP address from a string?

Thanks in advance

Regards
Chandrika


With regards,
Alexei Bovanenko

Hi,
Thanks for the response.It did work.However isn’t there a provision to
edit the same file and save it?

Regards
Chandrika