Is there a easy way to find and replay a match

Hi,there

If I have file and has a line is “aaa=100”, and need to replace it as
“aaa=4”.
Is there a way to do it without iterating each line and find the match,
then replace it? Thank in advance

If I have file and has a line is “aaa=100”, and need to replace it as
“aaa=4”.

puts File.read(‘somefile’)
foo
aaa=100
bar

puts File.read(‘somefile’).sub(‘aaa=100’, ‘aaa=4’)
foo
aaa=4
bar

Tor Erik

I need “aaa=4” in the file instead of just print out

Tor Erik L. wrote:

If I have file and has a line is “aaa=100”, and need to replace it as
“aaa=4”.

puts File.read(‘somefile’)
foo
aaa=100
bar

puts File.read(‘somefile’).sub(‘aaa=100’, ‘aaa=4’)
foo
aaa=4
bar

Tor Erik

On Wednesday 28 May 2008 18:18:09 Cheyne Li wrote:

I need “aaa=4” in the file instead of just print out

No offense, but this was pretty much handed to you. You should be able
to get
the rest of the way yourself…

print File.read(‘somefile’).sub(‘aaa=100’, ‘aaa=4’)

string = File.read(‘somefile’).sub(‘aaa=100’,‘aaa=4’)
open(‘somefile’,‘w’){|f| f.write string}

By the way: DON’T do it this way in a real program. It’s not at all
safe.
Learn about temporary files and file IO.

Cheyne Li wrote:

I need “aaa=4” in the file instead of just print out

File.open(‘somefile’, ‘r+’) do |file|
content = file.read.sub(‘aaa=100’, ‘aaa=4’)
file.seek(0)
file.write(content)
}

Read more about File at
http://www.ruby-doc.org/core/classes/File.html

although this documentation isn’t the easiest to follow.

Tor Erik

Hi,

Cheyne Li wrote:

Hi,there

If I have file and has a line is “aaa=100”, and need to replace it as
“aaa=4”.
Is there a way to do it without iterating each line and find the match,
then replace it? Thank in advance

ruby -i -pe’gsub(/aaa=100/,“aaa=4”)’ somefile

Regards,

Park H.

Thanks a lot, it really helped. But I don’t know why if i use regular
expression to match the pattern “aaa=.*”, it’s not working with sub, but
gsub.

Tor Erik L. wrote:

Cheyne Li wrote:

I need “aaa=4” in the file instead of just print out

File.open(‘somefile’, ‘r+’) do |file|
content = file.read.sub(‘aaa=100’, ‘aaa=4’)
file.seek(0)
file.write(content)
}

Read more about File at
class File - RDoc Documentation

although this documentation isn’t the easiest to follow.

Tor Erik