我必须浏览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方法,正则表达式也不起作用。
检查是否为空?
out = File.new("out.txt", "w")
File.foreach("file.txt") { |line|
out.puts line unless line.chomp.empty?
}
我使用下面一行来删除文件中的所有空白行
file = "/tmp/hello.log"
File.write(file, File.read(file).gsub(/n+/,"n"))
稍微改变一下gsub就可以了
File.foreach("file.txt"){|line|
line.gsub("n", '')
}
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
String#squeeze用于此。这里,它将一系列行尾简化为单个行尾。
open("out.txt", "w") {|out| open("test.txt") {|in| out << in.read.squeeze("n")}}