DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   Shell Scripting (http://www.daniweb.com/forums/forum113.html)
-   -   Replace text in a file (http://www.daniweb.com/forums/thread54475.html)

toztech Sep 7th, 2006 6:35 pm
Replace text in a file
 
Greetings,

Hey guys, I am trying to make a shell script that will scan for a certain 5 lines of text in a file, modify it by adding two lines in the middle and replacing that section of text in the file.

For example read rc.conf for:
Line1
Line2
Line3
Line4
Line5
That match the exact lines

and replace that section or match with

Line1
Line2
INSERTLINE
Line3
INSERTLINE
Line4
Line5

Mainly i am trying to add a new case statment inside an if loop automatically using a shell script. I have tried reading info on awk usage but cannot find anything that matches whta I am trying to accomplish. Any help would be greatly appreciated.

Regards,

S Tompkins

John A Sep 7th, 2006 9:00 pm
Re: Replace text in a file
 
Here's one way of approaching your problem (pseduo-code):
while !eof {
  increment fileline

  while (stillgoing) {
      increment index
      read line fileline from file
      if (compare string to one in database = FALSE)
          stillgoing = FALSE
      if (index > 5)
          insert lines in file
  } end while
} end while

Just off the top of my head. Don't take it too literally.

jim mcnamara Sep 8th, 2006 11:09 am
Re: Replace text in a file
 
awk works for this pretty well -
awk '{
        print $0
        if($0=="Line2") {print "INSERTLINE2"}
        if($0=="Line3") {print "INSERTLINE3"}
      }' file > newfile

sut Sep 11th, 2006 8:34 am
Re: Replace text in a file
 
sed '
/Line1/{
N;N;N;N
s/^Line1\nLine2\nLine3\nLine4\nLine5$/Line1\
Line2\
INSERTLINE1\
Line3\
INSERTLINE2\
 Line4\
Line5\
/
}' rc.conf


All times are GMT -4. The time now is 6:23 am.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC