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

Discussion in 'Ruby' started by Chandu80, Nov 8, 2010.

  1. Chandu80

    Chandu80 Guest

    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
    Chandu80, Nov 8, 2010
    #1
    1. Advertising

  2. [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 <> 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
    Alexey Bovanenko, Nov 8, 2010
    #2
    1. Advertising

  3. Chandu80

    zuerrong Guest

    2010/11/8 Chandu80 <>:
    > 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=3D"ip addr:12.34.56.78"
    =3D> "ip addr:12.34.56.78"

    irb(main):002:0> s.scan /\d+\.\d+\.\d+\.\d+/
    =3D> ["12.34.56.78"]


    --=20
    Kind regards,
    =C2=A0 =C2=A0 =C2=A0Zuer (=E7=A5=96=E5=84=BF)
    zuerrong, Nov 8, 2010
    #3
  4. Chandu80

    Chandu80 Guest

    On Nov 8, 5:48 pm, Alexey Bovanenko <> 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 <> 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


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

    Regards
    Chandrika
    Chandu80, Nov 9, 2010
    #4
  5. Re: Identify IP address from a text file and replace it with newaddress.

    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
    Robert Klemme, Nov 9, 2010
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Shilpa
    Replies:
    1
    Views:
    728
    Brendan Green
    Mar 22, 2006
  2. Roedy Green
    Replies:
    0
    Views:
    367
    Roedy Green
    Sep 16, 2008
  3. mscir
    Replies:
    0
    Views:
    298
    mscir
    Oct 12, 2005
  4. Chris Angelico
    Replies:
    9
    Views:
    226
    Andrew Cooper
    Jul 29, 2012
  5. Tim Chase
    Replies:
    10
    Views:
    366
    Robert Miles
    Aug 31, 2012
Loading...

Share This Page