2017-07-14 21 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--strip) 'gsub'を呼び出す前にスペースを入れたり、正規表現に' gsub'。 – axiac

答えて

2

あなたはそれにもかかわらず、メモリにファイル全体を読み込むので、これは読みやすいかもしれません:

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

をジャストスペースのみを含む、これらの行を削除します。

+0

ありがとうございます。これはまさに私が探していたものです。 –

+0

@CarySwovel upvotesは実際に私たちがここでやっていることをしているのではありません:) – mudasobwa

+0

真実ですが、良い答えに適用されるdownvoteは、読者にとっては最高のものです。 –

関連する問題