使用 ruby 从文本文件中删除重复的单词

Using ruby to delete duplicate words from text file

如何使用 ruby 从文本文件中删除重复的单词行? 例如:

文件读取=

line 1 = 345 
line 2 = 234
line 3 = 456
line 4 = 789
line 5 = 234
line 6 = 345

我正在尝试编写一个脚本来读取文件的行并删除重复项。因此在脚本执行后输出将是:

文件读取=

line 1 = 345
line 2 = 234
line 3 = 456
line 4 = 789

该函数会删除包含 234 和 345 的重复行。

lines = File.read('/path/to/file')
lines.split("\n").uniq.join("\n")

我会这样做:

require 'set'

def copy_unique_lines(source, target)
  lines = Set.new

  File.open(target, 'w') do |out|
    File.open(source, 'r').each_line do |line|
      if lines.add?(line)
        out << line
      end
    end
  end
end

其中sourcetarget为文件路径:

copy_unique_lines('path/input.txt', 'path/output.txt')