Re: Replace a line... with 2 lines

2002-10-06 Thread Mitchell Wright

I think you can do it with sed, but one trick would be to make sure you are
not writing out to the same file as you are reading from. This may be unique
to me, but I had a hell of a time trying to figure what was wrong with a
similar thing I was working on. It turned out to be that I had to bring in
one file, do the operation, write out to another file and then change the
name back to the original.

Anyways... Give this a try:

#cat filename | sed s/Test/Test\nTest1/g  filename2

That works for me... ymmv :-)

Mitchell

On 10/6/02 8:46 AM, Shaw, Marco [EMAIL PROTECTED] wrote:

 How can I do the following...
 
 A file something like this:
 
 some lines
 Test
 some lines
 
 I want to end up with:
 
 some lines
 Test
 Test1
 some lines
 
 So basically, I want to replace Test with Testnew lineTest1.  Can't seem
 to do it with sed, and would prefer to stay away from Perl.  It won't
 necessarily be on the same line number all the time either.
 
 I could possibly read the entire file in:
 
 While read line
 Do
 if [ $line = Test ]
 then {
 echo
 echo Test1
 }
 fi
 Done  ${FILE}  ${FILE}.tmp
 
 Which I just thought of, but didn't try, since it seems ugly.
 
 Marco
 
 



-- 
redhat-list mailing list
unsubscribe mailto:[EMAIL PROTECTED]?subject=unsubscribe
https://listman.redhat.com/mailman/listinfo/redhat-list



Re: Replace a line... with 2 lines

2002-10-06 Thread Ziad Samaha

Marco,

The following works fine, it will replace your old file with a new one 
including the line duplication you are looking for.

cat filename | awk '{
if (NF==1  $1==test) {
print $0
printf(%s,test1\n);
}
else {
print $0
}
}'filename

Regards,

Ziad



From: Mitchell Wright [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: Re: Replace a line... with 2 lines
Date: Sun, 06 Oct 2002 09:23:44 -0400

I think you can do it with sed, but one trick would be to make sure you are
not writing out to the same file as you are reading from. This may be 
unique
to me, but I had a hell of a time trying to figure what was wrong with a
similar thing I was working on. It turned out to be that I had to bring in
one file, do the operation, write out to another file and then change the
name back to the original.

Anyways... Give this a try:

#cat filename | sed s/Test/Test\nTest1/g  filename2

That works for me... ymmv :-)

Mitchell

On 10/6/02 8:46 AM, Shaw, Marco [EMAIL PROTECTED] wrote:

  How can I do the following...
 
  A file something like this:
 
  some lines
  Test
  some lines
 
  I want to end up with:
 
  some lines
  Test
  Test1
  some lines
 
  So basically, I want to replace Test with Testnew lineTest1.  
Can't seem
  to do it with sed, and would prefer to stay away from Perl.  It won't
  necessarily be on the same line number all the time either.
 
  I could possibly read the entire file in:
 
  While read line
  Do
  if [ $line = Test ]
  then {
  echo
  echo Test1
  }
  fi
  Done  ${FILE}  ${FILE}.tmp
 
  Which I just thought of, but didn't try, since it seems ugly.
 
  Marco
 
 



--
redhat-list mailing list
unsubscribe mailto:[EMAIL PROTECTED]?subject=unsubscribe
https://listman.redhat.com/mailman/listinfo/redhat-list




_
MSN Photos is the easiest way to share and print your photos: 
http://photos.msn.com/support/worldwide.aspx



-- 
redhat-list mailing list
unsubscribe mailto:[EMAIL PROTECTED]?subject=unsubscribe
https://listman.redhat.com/mailman/listinfo/redhat-list