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

···

On Mon, Nov 8, 2010 at 3:20 PM, Chandu80 <chandu.shenoy@gmail.com> wrote:

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

--
With regards,
Alexei Bovanenko

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"]

···

2010/11/8 Chandu80 <chandu.shenoy@gmail.com>:

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?

--
Kind regards,
Zuer (祖儿)

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

Regards
Chandrika

···

On Nov 8, 5:48 pm, Alexey Bovanenko <a.bovane...@gmail.com> wrote:

[Note: parts of this message were removed to make it a legal post.]

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

On Mon, Nov 8, 2010 at 3:20 PM, Chandu80 <chandu.she...@gmail.com> wrote:
> 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

--
With regards,
Alexei Bovanenko

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 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?