Add text to file at a certain line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Add text to file at a certain line
# 1  
Old 04-20-2005
Add text to file at a certain line

I am trying to add a line of text just before the last line in a file.

For example, if the last line of a file is "exit 0", I need to add a line of text just before that.

Any ideas how I might do that?

Thanks
# 2  
Old 04-20-2005
assuming that you're only interested in scripts with "exit 0" lines and that each script has the exit line as the last line ...
Code:
if [ -x ${file} ]
then
     linecnt=$(awk 'END {print NR - 1}' ${file})
     sed -n "1,${linecnt}p" ${file} > /tmp/$$
     echo "your new text" >> /tmp/$$
     echo "exit 0" >> /tmp/$$
     cat /tmp/$$ > ${file}
     rm /tmp/$$
fi

you can also put in checks to make sure the last line is actually "exit 0" and not a blank new line to make sure you're putting in the required text in the right place ...

Last edited by Just Ice; 04-20-2005 at 07:01 PM.. Reason: correction
# 3  
Old 04-20-2005
Code:
sed -e '$ d' myfile >x
echo "your text" >>x
sed -n '$ p' myfile >>x

mv x myfile

# 4  
Old 04-20-2005
Before...
Code:
line 1
line 2
line 3
line 4

If it's always the second last line that needs inserting, then...
Code:
printf '$i\nSecond-to-last-line!\n.\nwq\n' | ex - somefile

After...
Code:
line 1
line 2
line 3
Second-to-last-line!
line 4

Cheers
ZB
# 5  
Old 04-20-2005
Quote:
Originally Posted by bhargav
Code:
sed -e '$ d' myfile >x
echo "your text" >>x
sed -n '$ p' myfile >>x

mv x myfile

... you would need to do a "chmod a+x" after the "mv" to keep the executable bit on the file ... as well as a "chown" if you're not the original owner of the file ... doing the "cat" line instead fixes these issues ...
Code:
root_icebox:/tmp # cp -p /root/nist.time .
root_icebox:/tmp # ls -l nist.time
-rwxr-xr-x   1 root     other        344 Apr  4 00:53 nist.time
root_icebox:/tmp # chown bin:bin nist.time
root_icebox:/tmp # ls -l nist.time
-rwxr-xr-x   1 bin      bin          344 Apr  4 00:53 nist.time
root_icebox:/tmp # echo "#! /bin/ksh\nhostname\ndate\nexit 0" > mytest
root_icebox:/tmp # ls -l mytest
-rw-r--r--   1 root     other         33 Apr 20 20:41 mytest
root_icebox:/tmp # mv mytest nist.time
root_icebox:/tmp # ls -l nist.time mytest
mytest: No such file or directory
-rw-r--r--   1 root     other         33 Apr 20 20:41 nist.time
root_icebox:/tmp # cp -p /root/nist.time .                            
root_icebox:/tmp # ls -l nist.time                                    
-rwxr-xr-x   1 root     other        344 Apr  4 00:53 nist.time
root_icebox:/tmp # echo "#! /bin/ksh\nhostname\ndate\nexit 0" > mytest
root_icebox:/tmp # ls -l mytest                                       
-rw-r--r--   1 root     other         33 Apr 20 20:47 mytest
root_icebox:/tmp # chown bin:bin nist.time                            
root_icebox:/tmp # ls -l nist.time
-rwxr-xr-x   1 bin      bin          344 Apr  4 00:53 nist.time
root_icebox:/tmp # cat mytest > nist.time                             
root_icebox:/tmp # ls -l nist.time mytest
-rw-r--r--   1 root     other         33 Apr 20 20:47 mytest
-rwxr-xr-x   1 bin      bin           33 Apr 20 20:48 nist.time
root_icebox:/tmp #

# 6  
Old 04-20-2005
Code:
cp file file.old
sed '$iYour text goes here' file.old > file

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to add the line to previous line in | delimited text?

Hi All, I am new to Unix and I have one challenge and below are the details. I have pipe delimited text file in that data has span into multiple lines instead of single line. Sample data. Data should be like below for entire file. 41|216|398555|77|provided complete NP outcome data ... (21 Replies)
Discussion started by: Narasimhasss
21 Replies

2. Shell Programming and Scripting

How to add line numbers (multiples of 5: 0,5,10,15,20) to a text file?

Hi, I need to number the lines in my text file. I know how to do this with standard numbering (1,2,3,4, etc) but I need to count in multiples of 5, beginning 0,5,10,15... example existing file: abcd efg hijklm nopqrs desired output 0 abcd 5 efg 10 hijklm 15 ... (11 Replies)
Discussion started by: livbaddeley
11 Replies

3. Shell Programming and Scripting

how to add text into the last line of text file

I need help with insert text to the last line of text file with echo command I know can do something like echo "i4\n$logtext\n.\nwq" | ex -s $file can insert to first line, but how can i change this code in order to insert to the last line of text file? please help, thank you :( (2 Replies)
Discussion started by: gavin_L
2 Replies

4. Shell Programming and Scripting

add serial number begining of each line in a text file

Dear All, i am having text file below rama 123 done raju 456 not done keshav 123 done ............... ............ i want to add a serial number to this file, the output should be 1 rama 123 done 2 raju 456 not done 3 keshav 123 done 99 ............... 100 ............ ... (3 Replies)
Discussion started by: suryanarayana
3 Replies

5. Shell Programming and Scripting

sed add after line x new text from file

I've been playing with sed, trying to get it to insert the contents of somefile.txt after line 13 on anotherfile.txt. I tried searching for a line with regex and attempting to insert something on the next line with: find ./anotherfile.txt -type f -exec sed -i -e '/^dog/cat/' {} \; but it... (2 Replies)
Discussion started by: unclecameron
2 Replies

6. Shell Programming and Scripting

Add ; to every line in text file

Please help to add ; to every line in a text file i Have tired sed 's/$/ ; /g' > /tmp/drop_tables.sql but not working :( Thanks (2 Replies)
Discussion started by: bluebird5m
2 Replies

7. Shell Programming and Scripting

Add one text line in the head of the file

hello, how can I add one text line string at the line number one of a file. thankx, (5 Replies)
Discussion started by: Ahmed waheed
5 Replies

8. Shell Programming and Scripting

how to add line numbers in text file

Hi all How to add line numbers in text file.. ex abcd cdef result 1. abcd 2. cdef thx in advance (4 Replies)
Discussion started by: suryanarayana
4 Replies

9. Shell Programming and Scripting

Script to add a single line to middle of text file.

I've got a configuration file that is filled with xml text statements for example: <...../> <...../> <...../> <data id="java-options" value="-server -Djava.security.policy..../> <...../> <...../> <...../> I want to write a korn shell script that will go to this specific line and add a... (2 Replies)
Discussion started by: progkcp
2 Replies

10. Shell Programming and Scripting

Need to add a comment line in a text file

Hi I need to add a comment line at the begining of a text file. The scenario is given below. 1. The number of servers that needs to be updated is around 80 2. The location of the text file in all the servers are the same including the file name. 3. The comment has to be added at the very... (2 Replies)
Discussion started by: orakhan
2 Replies
Login or Register to Ask a Question