我正在尝试从文件中删除一行

I'm tyring to remove a line from a file

我的代码有问题吗?

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 中读取一行,然后删除正在读取的同一行。请帮忙?

您可以使用 String#strip (line.strip) 从 line 中去除前导和尾随空白字符(如果有的话)。此外,从 gsub:

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

这样就可以了,您的代码将按预期工作。