Sponsored Content
Top Forums Shell Programming and Scripting Inserting text into a file but searching for the place to put it! Post 302456659 by kurumi on Friday 24th of September 2010 09:13:52 PM
Old 09-24-2010
Code:
#!/usr/bin/env ruby 

require 'ipaddr'
def dec2ip(dec) return IPAddr.new(dec, Socket::AF_INET).to_s end
def ip2dec(ip) return IPAddr.new(ip).to_i end
file=ARGV[0]
insertline=ARGV[1]
data=File.read(file) # read the whole file
# store all ip address
sortedip=data.scan(/(\d+\.\d+\.\d+\.\d+)/).flatten.map {|x| ip2dec(x)}
# get the ip address to be inserted
insertip=ip2dec(insertline.scan(/\d+\.\d+\.\d+\.\d+/)[0])
sortedip<<insertip
sortedip.sort!
# get the ip before the one being inserted
beforeip=dec2ip(sortedip[sortedip.index(insertip)-1])
data.split("\n").each do |x|
  x="#{x}\n#{insertline}\n"  if x.match(beforeip)
  puts x
end


Code:
$ echo $insert
testmachine4 IN A 192.189.1.4

# ruby test.rb file "$insert"
;zone file for test001.btcuk
$TTL 2d
@      IN     SOA    testserver.servers009.btcuk.    root.servers009.btcuk (
                        2010092401            ;               serial number with no of editings
                        24h                       ;               refresh
                        5m                        ;               update entry
                        1w                        ;               expirary
                        2h )                      ;                minimum
                        NS        testserver.servers009.btcuk
testmachine1      IN         A          192.189.1.1
testmachine2      IN         A          192.189.1.2
testmachine3      IN         A          192.189.1.3
testmachine4      IN         A          192.189.1.4
wibble                IN         A          192.189.1.42
tesmachineend    IN         A           192.189.1.255


$ insert="testmachine20      IN         A          192.190.1.5"
$ ruby test.rb file "$insert"
;zone file for test001.btcuk
$TTL 2d
@      IN     SOA    testserver.servers009.btcuk.    root.servers009.btcuk (
                        2010092401            ;               serial number with no of editings
                        24h                       ;               refresh
                        5m                        ;               update entry
                        1w                        ;               expirary
                        2h )                      ;                minimum
                        NS        testserver.servers009.btcuk
testmachine1      IN         A          192.189.1.1
testmachine2      IN         A          192.189.1.2
testmachine3      IN         A          192.189.1.3
wibble                IN         A          192.189.1.42
tesmachineend    IN         A           192.189.1.255
testmachine20      IN         A          192.190.1.5

This User Gave Thanks to kurumi For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

place to put statup scripts?

I have written a script to start websphere server, I dont know where to put the file in the OS . please put me the place to put the starup scripts in linux, solaris and AIX? (2 Replies)
Discussion started by: jayaramanit
2 Replies

2. Shell Programming and Scripting

Perl - Enter text in a file in a place.

Hi, I have a simple question: I need to enter some text in a text file at a certain place via perl. I would first need to find that specific text in the file and then I would like to insert a line after that particular line. Say I have this text file: I am a great Perl Programmer I... (1 Reply)
Discussion started by: som.nitk
1 Replies

3. Shell Programming and Scripting

Inserting text and modifying the file

I am in a dire need of doing this job , please help from shell script or perl script. It will be highly appreciated. Please have a look at the following INPUT file; The first 14 rows are not of interest but I want them to be included in the output file as they are. From the row 14... (3 Replies)
Discussion started by: digipak
3 Replies

4. Shell Programming and Scripting

inserting a string to a text file

Hello Can somebody please help me with the following script? I'm trying to create a text file with 20 blank lines and then insert a string in line 2 but nothing is printed in the itxtfile. I can create the file with 20 blank lines but when I "tell" it to print something on the second line, it... (4 Replies)
Discussion started by: goude
4 Replies

5. Shell Programming and Scripting

script for inserting line at specific place in file

I use zentyal for my server admin, which is great but zentyal auto-generates config file on boot and hence overwrites any changes made directly to config files. In order to allow multiple user access to a MS ACCESS database, I need to customise the smb.conf file and add the following line to the... (9 Replies)
Discussion started by: barrydocks
9 Replies

6. UNIX for Dummies Questions & Answers

Inserting a column into a text file

I have a tab delimited text file with multiple columns (data.txt). I would like to insert a column into the text file. The column I want to insert is in a text file (column.txt). I want to insert it into the 5th column of data.txt. How do I go about doing that? Thanks! (2 Replies)
Discussion started by: evelibertine
2 Replies

7. Shell Programming and Scripting

searching a file with a specified text without using conventional file searching commands

without using conventional file searching commands like find etc, is it possible to locate a file if i just know that the file that i'm searching for contains a particular text like "Hello world" or something? (5 Replies)
Discussion started by: arindamlive
5 Replies

8. Shell Programming and Scripting

Inserting text into a new file

Hi all, I want to create a file and then insert some text into it. I'm trying to create a .sh script that will create a new python file from a template. Can someone tell me why this won't work, touch $1 | sed -e '1i\Some test code here' Sorry I'm quite new to all this! Just as a side... (3 Replies)
Discussion started by: ahodgson
3 Replies

9. Shell Programming and Scripting

Help with sed and inserting text from another file

I need to insert text from one file into another file after specific term. I guess sed is the best method of doing this and I can insert a specified text string using this script but I am not sure how to modify it to insert text from another file: #!/bin/sh sed 's/\<VirtualHost... (17 Replies)
Discussion started by: barrydocks
17 Replies

10. Shell Programming and Scripting

Cut text file in place

I have a file that i want to take only the first part of it and discard the rest, to be accurate,I need the first 137097 lines but I cant use split because I dont have enough space on my disck. I need sth to cut the file in its place (3 Replies)
Discussion started by: Heidi Heweidy
3 Replies
All times are GMT -4. The time now is 08:16 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy