简体   繁体   中英

Open a file, read the lines, find a certain line and append a string to the end of it in ruby

So I want to read in my .bash_profile and append a string to the PATH.

Should I be opening the file and reading per line until I find what I want then replace? Or read in everything first?

File.open("/root/.bash_profile", "w+") do |file|
while line = line.gets
    if line =~ /^PATH/
        Not sure how to append
    end
end

The w+ mode for files erases all content (I found this in a script that tried to modify its source). If you want to be able to write but keep content, use the r+ mode instead.

NOTE: After seing your problem, why can you not append a line to this effect to the end of the bash profile?:

PATH=/some/path:$PATH

Or will this not work? Because the code for that is simple:

f=File.new("~/.bash_profile", "a+")
f.puts "PATH=/some/path:$PATH"

This may work just as well.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM