从文件中删除空行而不创建新文件

时间:2015-01-02 17:14:15

标签: ruby lines

如何在不创建新文件的情况下从Ruby中的文件中删除空行?

我读了一些示例,其中逐行读取文件,并且只将非空行写入新文件。有没有替代这种方法。

有没有像sed one-liner这样的东西?

1 个答案:

答案 0 :(得分:3)

虽然是黑客攻击:“打开文件删除空白并写回自身”,但这有效:

file_name = './blanked.txt'

original = File.open(file_name, 'r') { |file| file.readlines }
blankless = original.reject{ |line| line.match(/^$/) }

File.open(file_name, 'w') do |file|
  blankless.each { |line| file.puts line }
end