打开一个文件,读取行,找到某一行,并在ruby中将一个字符串附加到它的末尾

时间:2012-02-14 18:10:40

标签: ruby append

所以我想在我的.bash_profile中读取并在PATH中添加一个字符串。

我应该打开文件并按行阅读,直到找到我想要的内容然后更换?或先阅读所有内容?

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

1 个答案:

答案 0 :(得分:1)

文件w+模式会删除所有内容(我在尝试修改其来源的脚本中找到了此内容)。如果您希望能够写入但保留内容,请使用r+模式。

注意:在解决问题之后,为什么不在bash配置文件的末尾添加一行到这个效果?:

PATH=/some/path:$PATH

或者这不起作用吗?因为代码很简单:

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

这可能同样有效。