我有一个从各种来源编译的大量单词。来自这么多不相关的来源,我想有一些重复。即使在一些原始文件中,也有重复文件。我已经创建了一个脚本来对它们进行排序,但是此时文件已经变得如此笨拙,以至于我在尝试解析它时会耗尽内存。来源如下。我使用Ruby 1.9.3-p327运行Windows 8,64位。
#!/usr/bin/env ruby
words = []
File.foreach( "wordlist.txt" ) do |line|
words << line
end
words.uniq!()
words = words.sort()
wordFile = File.open( "wordlist.txt", "w" )
words.each do |word|
wordFile << word + "\n"
puts "Wrote to file: #{ word }"
end
答案 0 :(得分:2)
有许多不同的方法可以删除重复项。你不需要在ruby中执行此操作。如果单词适合记忆,你可以使用你曾经见过的一组单词,而不是再次打印它们。如果集合太大,您始终可以使用sort
命令对ruby之外的文件进行排序(查看-T开关以使用临时目录而不是内存),并将输出传递给{{1} }。