The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Dummies Questions & Answers
Google UNIX.COM


UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !!

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
insert text in the middle of a file relle Shell Programming and Scripting 3 03-13-2008 11:37 AM
How to insert the 1st arg into the middle of the file boris Shell Programming and Scripting 4 04-12-2007 09:21 PM
How to insert text into first line of the file and middle of the file? ali hussain Shell Programming and Scripting 3 03-05-2007 01:54 AM
insert text into the middle of a original file mopimp Shell Programming and Scripting 1 03-26-2006 07:11 AM
how to insert and delete characters in the middle of file ivancheung High Level Programming 7 10-11-2004 12:08 AM

Reply
 
Submit Tools LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 05-09-2008
Registered User
 

Join Date: May 2008
Posts: 16
Stumble this Post!
How to insert text in the middle of a file

Hey guys, how do we take a line of text as an argument from a user and then insert it in the middle of a file irrespective of the number of lines in the file. I am trying to do this without SED or AWK. Inserting it in the beginning and at the end is easy, but i am trying to accomplish inserting text in the middle?
Reply With Quote
Forum Sponsor
  #2 (permalink)  
Old 05-09-2008
...@...
 

Join Date: Feb 2004
Location: NM
Posts: 3,846
Stumble this Post!
One way - file has 10 lines
Code:
head -10 file > newfile
echo "line of text ">> newfile
tail -10 file >> newfile
Reply With Quote
  #3 (permalink)  
Old 05-09-2008
Registered User
 

Join Date: May 2008
Posts: 16
Stumble this Post!
How to insert text in the middle of a file w/o SED or AWK!!

tht dint wrk as i am trying to do this using a script..im pasting the script

#!bin/bash

echo "Enter a line of text";
read text;

echo "Enter the file path to append to";
read path;

nfline=$(wc -l $path);
middle=$($nfline/2);


head -$middle $path > tmpfile;
$text >> tmpfile;
tail -$middle $path >> tmpfile;

mv tmpfile $path;

more $path;

Last edited by kartikkumar84@g; 05-09-2008 at 06:06 PM.
Reply With Quote
  #4 (permalink)  
Old 05-09-2008
Registered User
 

Join Date: May 2008
Posts: 16
Stumble this Post!
wc -l filename

does not work because it returns the file name as well, so it cant be used in an expression.
Reply With Quote
  #5 (permalink)  
Old 05-10-2008
Technorati Master
 

Join Date: Mar 2005
Location: Large scale systems...
Posts: 2,572
Stumble this Post!
Quote:
Originally Posted by kartikkumar84@g View Post
wc -l filename

does not work because it returns the file name as well, so it cant be used in an expression.
there is a way

Code:
cnt=`wc -l < filename`
Reply With Quote
  #6 (permalink)  
Old 05-10-2008
Registered User
 

Join Date: May 2008
Posts: 16
Stumble this Post!
Thumbs up

yup thank u!
Reply With Quote
  #7 (permalink)  
Old 05-10-2008
Moderator
 

Join Date: Dec 2003
Location: /dev/florida
Posts: 951
Stumble this Post!
Here is another way of doing it using ed(1)
Code:
#!/bin/ksh93

TMP=file.$$

read TEXT?"Enter a line of text: "

read path?"Enter the file path to append to: "

MIDDLE=$(( $(/bin/wc -l < $path)/2 ))

# build editing command file
cat <<EOT >$TMP
${MIDDLE}
a
${TEXT}
.
w
q
EOT

cat $TMP

# go do the work
/bin/ed -s $path < $TMP

rm $TMP

cat $path

exit 0
Reply With Quote
Google The UNIX and Linux Forums
Reply

Thread Tools
Display Modes




All times are GMT -7. The time now is 03:12 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
The UNIX and Linux Forums Content Copyright ©1993-2008 The CEP Blog All Rights Reserved -Ad Management by RedTyger Visit The Global Fact Book

Content Relevant URLs by vBSEO 3.2.0