1

我想我离这里很近,但有一个关键部分在躲避我。

模板.txt

我是一个@file
,需要 用数组中的每个值
替换单词文件

子值.txt

单词1
单词2
单词
3 单词4

所以我正在做的是打开一个文件附加到使用

filex = file.new ("outputfile.txt" "a")

然后我用模板数据打开文件

data = file.open("template.txt")

然后我将我的数据导入到一个数组中

array1 = File.readlines("subvalues.txt")

这就是我卡住的地方。如何循环遍历数组,用数组中的第一个元素替换@filein file1,将输出写入outputfile.txt,再次用数组中的第二个元素替换@filein file1,将输出附加到outputfile.txt,然后继续直到数组没有更多值。

我发现了类似的帖子,但没有与我正在做的事情相匹配。我已经尝试将其中一些想法适应我​​正在尝试做的事情,但似乎我在做一些倒退的事情,我无法让它发挥作用。

4

2 回答 2

2

模板.txt:

I am a @file that needs the word file replaced with each value in an array  

子值.txt

word1
word2
word3
word4

代码:

data = File.open('template.txt', &:read)
array = File.read('subvalues.txt').split
File.open('outputfile.txt', 'a') do |file|
  array.each do |value|
    file.write(data.gsub('@file', value))
  end 
end
于 2012-06-14T15:28:15.903 回答
0

好吧,如果你愿意的话,有一个简单的、hacky 的方法。

substitutions_array.each do |elt|
  big_file.sub('file', elt)
end

这可能不是最好的方法,但它应该适合你。Sub 仅进行一次替换,因此您可以循环遍历数组。

编辑:我想我误解了你的问题,如果是这样,请参阅上面的答案。

于 2012-06-14T15:29:56.870 回答