ruby脚本逐行读取文件并添加行

时间:2014-08-20 07:13:28

标签: ruby

我正在通过以下代码

在ruby中读取文件
completeLine = ""
file.each_line do |line|
  completeLine = completeLine + line
end

现在当我打印completeLine变量时,它会以多行显示其内容,如

<obj  id=\"pluvi\" border=\"0\"
clsid=\"clsid:VI\"
style=\"opacity: 0.0; background-color: #000000; width: 0px; height: 0px;\"></obj>"

我希望它只在一行中像

一样
<obj  id=\"pluvi\" border=\"0\" clsid=\"clsid:VI\" style=\"opacity: 0.0; background-color: #000000; width: 0px; height: 0px;\"></obj>"

所以我使用 gsub 方法删除新的行字符,如

line = line.gsub(" *\n+", ' ')
line = line.gsub(" *\t+", ' ')

但在此之后我又无法获得1行内容。

查看我在下面的方法中使用的文件中存在的内容,并在 irb

中得到这样的输出
 text = File.open('G:/index.html').read

=> "<obj  id=\"pluvi\" border=\"0\"\n\tclsid=\"clsid:VI\"\n\tstyle=\"opacity: 0.0; background-color: #000000; width: 0px; height: 0px;\"></obj>"

那么我怎样才能解决上述问题?

2 个答案:

答案 0 :(得分:2)

您可以使用strip

删除该行中的所有空/空格
completeLine = ""
file.each_line do |line|
  completeLine = completeLine + line.strip
end

答案 1 :(得分:0)

chomp将删除\ n,\ r和\ r \ n,如果$ /尚未从默认的Ruby记录分隔符更改:)

completeLine = ""
file.each_line do |line|
  completeLine = completeLine + line.chomp
end