ruby each_line 获取下一行

Bru*_*Lin 2 ruby file-io

我有一个包含一些重复条目的文件。看起来像

Los Angeles, 6
Los Angeles, 6 
New York, 31
New York, 31
New YOrk, 31
.
.
.
Run Code Online (Sandbox Code Playgroud)

现在我想摆脱重复的数据。我尝试做的是使用each_line,查看该行是否等于下一行,如果它们相同,则跳过并写入新文件。问题是我应该如何获得该文件的下一行?或者任何其他建议来做到这一点?

wil*_*ynn 5

与下一行进行比较是不必要的,因为您可以轻松查看当前行是否与前一行匹配:

file = File.open("filename", "r")
previous_line = nil
file.each_line { |line|
   if line == previous_line
     # duplicate line; ignore
   else
     # different; do whatever you want
   end

   # remember this line so we can compare against it
   previous_line = line
}
Run Code Online (Sandbox Code Playgroud)