我想从文件中删除一行

时间:2015-12-01 04:12:05

标签: ruby file-io readline

我的代码有问题吗?

line = File.readlines("file.txt").sample(1)[0]
puts line

def remove_lines(fname, line)
    IO.write(fname, IO.read(fname).gsub(/^#{line}\n/, '')) 
end

remove_lines("file.txt", "#{line}")

我尝试在readlines中的文件名之后添加一个“a”。“rb”和“r +”。我只是想让它从file.txt读取一行,然后删除正在读取的同一行。请帮忙?

1 个答案:

答案 0 :(得分:1)

您可以使用String#stripline.strip)从line中删除前导和尾随空格字符(如果有)。另外,从\n

中删除gsub
def remove_lines(fname, line)
   IO.write(fname, IO.read(fname).gsub(/^#{line.strip}/, '')) 
end

这将解决问题,您的代码将按预期工作。