2017-07-14 100 views
0

我试图从文件中删除空行。Ruby从包含空格的文件中删除空行

我当前的代码是:

def remove_blank_lines_from_file(file) 
    File.write(file, File.read(file).gsub(/^$\n/, '')) 
end 

上面的代码只删除空行,但我也想删除它包含空格的线条。

我该怎么办?

+0

[strip](https://ruby-doc.org/core-2.4.1/String.html#method-i-strip)在调用'gsub'之前的空格或者包含正在使用的正则表达式中的空格' gsub'。 – axiac

回答

2

既然你仍然加载整个文件到内存中,这可能是更容易阅读:

File.write(file, File.readlines(file).reject { |s| s.strip.empty? }.join) 

只是删除那些行,只含有空格。

+0

谢谢。这正是我所期待的。 –

+0

@CarySwoveland upvotes实际上并不是我们为什么要做我们在这里做的事情:) – mudasobwa

+0

没错,但应用于一个很好的答案downvote是最好的读者混淆。 –