Ruby: 如何将多个 .txt 文件中的每一行存储到一个变量中

Ruby: How to store each line from many .txt files into one variable

我必须将位于不同目录中的 .txt 文件中的几行存储到变量中,但我不知道如何。

这是我用于打印这些 .txt 文件中的每一行的代码,它工作正常,但我不知道如何将它们存储到一个变量中。

Dir.chdir "/path/to/dir"
Dir.glob("**/*.{mo,txt}").each do |filename|
  File.open(filename, "r") do |f|
    f.each_line do |line|
            puts line
        end
    end
end

我是 ruby 的初学者所以请帮忙!!

数组最适合这个

array = []
Dir.chdir "/path/to/dir"
Dir.glob("**/*.{mo,txt}").each do |filename|

  File.open(filename, "r") do |f|
    f.each_line do |line|
      array << line.gsub(/[\r\n]+/, ' ')
    end
  end
end

如果您想要替代解决方案:

Dir.glob("**/*.{mo,txt}").each do |filename|
  File.foreach(filename).map { |line| array << line.gsub(/[\r\n]+/, ' ') }
end

在线替换的正则表达式是为了删除任何不需要的换行符。所以一个文件由

组成
1
2
3
4
5

没有正则表达式,将用以下内容填充您的数组:

["1\n", "2\n", "3\n", "4\n", "5\n"]

使用正则表达式,将用以下内容填充您的数组:

["1", "2", "3", "4", "5"]