Single Line replacement in file

R

Raveendran Jazzez

Hi All,

My code:

code.rb

lines=File.open("hi.txt","r")
output=[]
lines.each do |single|
out1=single.split(' ')
out2=out1[0].gsub('<B>', '')
out3= out2.gsub('</B>', '')
out4=out3.gsub('<WBR>','')
output << out4 # I need to overwrite the appropriate line.
end

hi.txt:

wordpress.com/tag/<B>jazzez</B>/ - 11k -
swik.net/<B>jazzez</B> - 40k -
raveendran.wordpress.com/category/<B>jazzez</B>/ - 15k -
www.linkedin.com/pub/2/377/3A2 - 10k -
www.bebo.com/Profile.jsp?MemberId=4902204778 -


My need:

code.rb --> out contains my proper output. But i didn't able to
overwrite the same line in file.It means
1. single --> "wordpress.com/tag/<B>jazzez</B>/ - 11k - "
2. out4 --> "wordpress.com/tag/jazzez"

Here i want to replace the first line in hi.txt file 1 to 2.


Awaiting your reply


Regards,
P.Raveendran
RF, chennai
http://raveendran.wordpress.com
 
M

Michael Bruschkewitz

Raveendran Jazzez said:
My need:

code.rb --> out contains my proper output. But i didn't able to
overwrite the same line in file.It means
1. single --> "wordpress.com/tag/<B>jazzez</B>/ - 11k - "
2. out4 --> "wordpress.com/tag/jazzez"

Here i want to replace the first line in hi.txt file 1 to 2.

You can't replace "lines" in a file because file on disk doesn't know about
lines.

You can read one file, filter its content, write into another file, close
first file, close second file, delete first file or rename to backup, rename
second file to first file.
This would be the easiest way.

or

You read complete file into memory, filter there, seek to file start, write
contents from memory, resize.
More dangerous on errors.

or

You replace characters of these tags by spaces directly in the file, may be
possible but needs more repositioning in file.

I also would recommend to analyze the XML-tree instead of simply removing
the tags wherever found.
Use, for example, "rexml" as contained in Ruby 1.8.
 
J

jazzez ravi

Hi Michael Bruschkewitz ,

Thanks for your detailed explanation.


You can read one file, filter its content, write into another file,
close
first file, close second file, delete first file or rename to backup,
rename
second file to first file.
This would be the easiest way.


I think this one is very simple and safety way..

Thanks.
P.Raveendran
RF, chennai
http://raveendran.wordpress.com
 
R

Robert Dober

Hi Michael Bruschkewitz ,

Thanks for your detailed explanation.


You can read one file, filter its content, write into another file,
close
first file, close second file, delete first file or rename to backup,
rename
second file to first file.
This would be the easiest way.


I think this one is very simple and safety way..

You might want to check out the -i option of Ruby.

Robert
 

Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top