Ruby从文本文件中过滤特定行
问题描述:
我是新手!我有一个包含文本行和行的文本文件。我想尝试创建一个代码,只允许显示短语“larry.bird”的行,而其他行则被删除。这是我现在的代码...Ruby从文本文件中过滤特定行
File.open("HM.txt").each do |line|
puts line
if line.include? "larry.bird"
puts "larye.bird " + line
end
end
File.readlines('HM.txt') do |li|
puts li if (li['larry.bird'])
end
如果你能帮助我,那太棒了!
答
你非常接近。您正在打开并正确读取文件;你只是在执行检查之前意外打印每一行。代码的第二行上的puts line
确保发生这种情况。
File.open("HM.txt") do |file|
file.each_line do |line|
if line.include? "larry.bird"
puts "larry.bird " + line
end
end
end
我们还可以缩短Ruby中的单行if语句,使用经常使代码更加简洁的后缀表示法。
File.open("HM.txt") do |file|
file.each_line do |line|
puts "larry.bird " + line if line.include? "larry.bird"
end
end
这相当于第一个例子。
国际海事组织,单线'如果'在噪音中丢失(太多的条款在它的左边)。相反,因为'each_line'返回'Enumerator','each_line.reject {| line | line.include?(...)} .each {| line |放置...}可能更好。 –