2011-02-02 100 views
0

如何从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" 
+3

你能更清楚你如何识别哪一行被删除?它总是第3行,还是总是匹配特定的正则表达式,或者其他什么? – sflinter 2011-02-02 13:25:26

+0

动态我将获得行值...从那个需要删除特定行...行号将变化 – Jeyavel 2011-02-03 07:40:44

回答

4

你可以阅读所有行到一个数组,然后将它们写回文件,而忽略你不想要的线条。 (这段代码只搜索你提到的特定行,但你可以建立一个正则表达式来代替line)。

lines = File.readlines(filename) 
File.open(filename, "w") do |f| 
    lines.each { |line| f.puts(line) unless line == "ADVANCE_APPROACH  , \"Advance Approach\"") } 
end