使用 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
其中source
和target
为文件路径:
copy_unique_lines('path/input.txt', 'path/output.txt')
如何使用 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
其中source
和target
为文件路径:
copy_unique_lines('path/input.txt', 'path/output.txt')