如何在不创建新文件的情况下从Ruby中的文件中删除空行?
我读了一些示例,其中逐行读取文件,并且只将非空行写入新文件。有没有替代这种方法。
有没有像sed one-liner这样的东西?
答案 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