我在搜索文件和编辑文件的某些参数时遇到了一些麻烦。代码在下面
do
所以现在它的作用是将文件内容打印两次,我只能假设它是因为它在textToReplace
循环中。我的最终目标是文件具有textToReplace2
和Primefaces 6.0
,我需要它来通读文件,用用户输入的内容替换并保存/写入对文件的更改。
答案 0 :(得分:2)
它将文件内容打印两次,我只能假设它是因为它在
do
循环中
不是,是因为您附加了两次:
text = first_replacement_result
text += second_replacement_result
有两种方法可以做到这一点:一种具有突变:
text.gsub!(...) # first replacement that changes `text`
text.gsub!(...) # second replacement that changes `text` again
或链式替换:
replacedcontent = text.gsub(...).gsub(...) # two replacements one after another
答案 1 :(得分:1)
您将需要重复使用replacedcontent
而不是将其串联起来以避免打印两次。
file_names = ["#{fileNameFromUser}"]
file_names.each do |file_name|
text = File.read(file_name)
replacedcontent = text.gsub(/textToReplace/, "#{ReplaceWithThis}")
replacedcontent = replacedcontent.gsub(/textToReplace2/, "#{ReplaceWithThis2}")
# To write changes to the file, use:
File.open(file_name, "w") {|file| file.puts replacedcontent}
end
OR
replacedcontent = text.gsub(/textToReplace/, "#{ReplaceWithThis}").gsub(/textToReplace2/, "#{ReplaceWithThis2}")