我有一个配置文件,我想添加一个字符串,看起来像这样:
line1
line2
line3
line4
Run Code Online (Sandbox Code Playgroud)
不应附加新字符串,而是将其写入文件中间的某处.因此,我在文件中寻找一个特定的位置(或字符串),当它被找到时,我插入我的新字符串:
file = File.open(path,"r+")
while (!file.eof?)
line = file.readline
if (line.downcase.starts_with?("line1"))
file.write("Some nice little sentence")
end
end
Run Code Online (Sandbox Code Playgroud)
问题是Ruby使用新文本覆盖该位置的行,因此结果如下:
line1
Some nice little sentence
line3
line4
Run Code Online (Sandbox Code Playgroud)
我想要的是一个"真正的"插入:
line1
Some nice little sentence
line2
line3
line4
Run Code Online (Sandbox Code Playgroud)
怎么能实现这一目标?
我已经在r +模式下打开了现有文件.
open("#{RAILS_ROOT} /locale/app.pot","r +")do | f |
结束
我想在特定的行号中插入一些其他行.就像我想要在行号10上插入"Hii".在第20行上的"世界"."hello".
我怎么能在红宝石中处理它?