我一定在浏览StackOverflow上的每个解决方案,似乎没有任何东西从文本文件中删除空白行,如下所示:
google
yahoo
facebook
reddit
在其他消息来源中,我尝试过:
File.foreach("file.txt") { |line|
line.gsub(/^$\n/, '')
}
和
replace = text.gsub /^$\n/, ''
File.open("file.txt", "w") { |file| file.puts replace }
然而,这些都不起作用。我正在撕扯我的头发,似乎没有原生的Nokogiri方法,正则表达式也不起作用。
答案 0 :(得分:2)
如何判断它是否为空?
out = File.new("out.txt", "w")
File.foreach("file.txt") { |line|
out.puts line unless line.chomp.empty?
}
答案 1 :(得分:2)
我使用下面的一个衬垫删除文件中的所有空行
file = "/tmp/hello.log"
File.write(file, File.read(file).gsub(/\n+/,"\n"))
答案 2 :(得分:0)
稍微改变gsub,它会起作用
File.foreach("file.txt"){|line|
line.gsub("\n", '')
}
答案 3 :(得分:0)
source_file = '/hello.txt'
new_file = File.new('/hello_new.txt')
File::open(new_file,'w') do |file|
File::open(source_file,'r').each(sep="\n") do |line|
file << line unless line.gsub("\n",'').length == 0
end
end
答案 4 :(得分:0)
String#squeeze对此很好。在这里,它将一系列线端减少到一个线端。
open("out.txt", "w") {|out| open("test.txt") {|in| out << in.read.squeeze("\n")}}