2017-07-14 89 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是最好的讀者混淆。 –