在某次匹配后将文本附加到文件

时间:2015-04-07 10:19:57

标签: ruby

我想在文件中添加新文本,但只能在现有匹配之后添加。

要附加文字,目前我正在做类似的事情:

File.open(path/to/file, 'a') { |file| file.puts(text) }

但是这总是在文件的末尾添加text

有没有办法在文本中的某个字符串之后追加text,而不是在文件的末尾?

1 个答案:

答案 0 :(得分:2)

您可以使用subgsub来搜索和替换匹配项,例如

file_contents = File.read(file_name)
file_contents.gsub!(/hello/, "hello #{text}")
File.write(file_name, file_contents)

请参阅http://ruby-doc.org/core-2.0.0/IO.html#method-c-write