消除零线

时间:2010-09-23 00:01:57

标签: ruby

我有以下代码:

f = File.open("/log/mytext.txt")
f.each_line do |i|
i = i.delete("\n")
puts i.inspect

删除删除了\ n,但结果如下所示:

"#<MatchData \"line1\">"
""
""
""
"#<MatchData \"line2\">"

希望它返回:

line1
line2

整天都在解决这个问题。谢谢你的帮助

1 个答案:

答案 0 :(得分:2)

p File.open("/log/mytext.txt").each_line.map(&:rstrip).delete_if(&:empty?)

现在让我解释一下:)

  1. p expr相当于puts expr.inspect,会显示结果。

  2. rstrip是一种删除尾随换行符(以及任何尾随空格)的简单方法。

  3. delete_if(&:empty?),相当于delete_if{|x| x.empty?}检查字符串是否为空白,如果是,则不会让它们通过。