如何从Ruby on Rails的文本文件中删除特定的行?
问题描述:
如何从Ruby on Rails的文本文件中删除特定行?如何从Ruby on Rails的文本文件中删除特定的行?
实施例:
1: CLEAR , "Clear"
2: APPROACH_DIVERGING , "Approach Diverging"
3: ADVANCE_APPROACH , "Advance Approach"
4: APPROACH_RESTRICTED , "Approach Restricted""
5: APPROACH2 , "Approach"
从上面的例子我想删除第三线。
3: ADVANCE_APPROACH , "Advance Approach"
最后,它会显示如下:
CLEAR , "Clear"
APPROACH_DIVERGING , "Approach Diverging"
APPROACH_RESTRICTED , "Approach Restricted""
APPROACH2 , "Approach"
答
你可以阅读所有行到一个数组,然后将它们写回文件,而忽略你不想要的线条。 (这段代码只搜索你提到的特定行,但你可以建立一个正则表达式来代替line
)。
lines = File.readlines(filename)
File.open(filename, "w") do |f|
lines.each { |line| f.puts(line) unless line == "ADVANCE_APPROACH , \"Advance Approach\"") }
end
你能更清楚你如何识别哪一行被删除?它总是第3行,还是总是匹配特定的正则表达式,或者其他什么? – sflinter 2011-02-02 13:25:26
动态我将获得行值...从那个需要删除特定行...行号将变化 – Jeyavel 2011-02-03 07:40:44