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
look(1) 						      General Commands Manual							   look(1)

NAME
look - Finds lines in a sorted list SYNOPSIS
look [-df] [-tcharacter] string [file] The look command prints all lines in a sorted file that begin with string. OPTIONS
Uses dictionary order; only letters, digits, tabs, and spaces are used in comparisons. Searches without regard to case; treats uppercase and lowercase as equivalent. Ignores character and characters following it in the search string. If you specify look -tC ABCDE, the string ABCDE would become (in effect) AB, with CDE being ignored. This option is primarily for shell scripts, in which more than one string is being processed. DESCRIPTION
If no file is specified, look searches in the system word list /usr/share/dict/words, with the options -df assumed by default. The look command uses binary search. The -d and -f options affect comparisons as in sort. NOTES
In order to use the -f option, you must first sort file with the sort -f command; otherwise, look displays only lowercase items. If you do not specify -f, but specify a file (such as /usr/share/dict/words) that has been sorted with sort -f, look may not produce any output. EXAMPLES
To search a sorted file called sortfile for all lines that begin with the string as, enter: look as sortfile To search the system word list for all words beginning with smi, enter: look smi This might result in: smile smirk smith smithereens Smithfield Smithson smithy smitten FILES
System word list. SEE ALSO
Commands: grep(1), sort(1), spell(1) look(1)
All times are GMT -4. The time now is 02:41 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy