ruby-on-rails - 用 Ruby 替换文件中的单词

标签 ruby-on-rails ruby string file

我是 Ruby 的新手,我一直在尝试替换文件中的单词。其代码如下:

File.open("hello.txt").each do |li|
  if (li["install"])
  li ["install"] = "latest"
  puts "the goal state set to install, changed to latest"
  end
end

虽然 puts 中的消息被打印一次,但该文件的该行中的单词不会更改为“最新”。谁能告诉我这里出了什么问题?谢谢

最佳答案

您还需要写回文件。 File.open 不带任何参数打开文件以供读取。你可以试试这个:

# load the file as a string
data = File.read("hello.txt") 
# globally substitute "install" for "latest"
filtered_data = data.gsub("install", "latest") 
# open the file for writing
File.open("hello.txt", "w") do |f|
  f.write(filtered_data)
end

关于ruby-on-rails - 用 Ruby 替换文件中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22335589/

相关文章:

Java:字符串索引超出范围:-1

php - 有什么解决方案可以将字符串转换为金额吗?

ruby-on-rails - 从 Gmail Rails 3 发送电子邮件

ruby-on-rails - 在 Rails 中使用 ajax 实现 jquery ui 选项卡?

ruby - Treetop ruby​​ 解析器 - 无法解析 Ordered Choice

ruby - 使用哈希默认值时出现奇怪的意外行为(消失/更改值),例如哈希.new([])

ruby-on-rails - 将图书馆的单元测试放在哪里

ruby-on-rails - 如何将方法添加到 Paper_trail 的版本模型?

python - Ruby on Rails 是否与 Google Code API 配合得很好?

c - 如何读取空格分隔的整数序列,直到遇到换行符?