我至少有500个不同的文件包含单词(每个单词在单独的行中)。问题是这些列表很长(总共5bln记录),我有问题使每个列表都是唯一的。我想保留文件名,但同时在每个文件中都有唯一的条目(没有合并等)。
到目前为止,我尝试了不同的程序,如app.merge和ccr,DB与表中的唯一列(postgresql和sqlite)没有运气。无法找到可靠的解决方案。你有什么建议去做?
编辑:我试图阻止任何文件使用常用字词。为了更好地解释它,让我们说我有3个文件包含以下内容:
f1:
word1
other
something
f2:
word2
word1
other
f3:
word1
something
myentry
因此,我希望看到:
f1:
word1
other
something
f2:
word2
f3:
myentry
当然文件本身要大得多(以此为例:http://md5decrypt.net/Telecharger-wordlist/Md5decrypt-awesome-wordlist.7z)。回答问题'到目前为止我测试了什么' - 好吧,这是我现在正在处理的代码:https://pastebin.com/Y8HutakU,这是结果(在运行1小时后停止):https://pastebin.com/tknve7qA。我知道代码远非最佳,并且在输出中清晰可见,随着DB的增长,DB的下一次插入需要越来越长的时间。我正在尝试使用数据库,因为我认为将所有单词都设置为唯一,保留文件名并使用比较方法以供将来使另外还有关于SQLite性能的好文章:
答案 0 :(得分:0)
如果您使用的是Linux系统,则可以使用标准的命令行工具。
SELECT
column1
,column2
,count(column3)
from (
select column1, column2, column3 from table1
union all
select column1,column2, null as column3
from (select distinct column1 from table1 ) all_c1
cross join ( select distinct column2 from table1) all_c2
)t group by column1, column2;