首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >比较两个文本文件和计数次数

比较两个文本文件和计数次数
EN

Stack Overflow用户
提问于 2014-03-27 11:47:49
回答 3查看 1.7K关注 0票数 2

我正试图写一篇博文,讲述拥有一个共同的访问点名称的危险。

因此,我做了一些战争,以获得一个访问点名称的列表,我从Renderlab下载了1000个最常见的访问点名称的列表(其中有彩虹表)。

但是,我如何比较这两个文本文件,看看我收集的访问点名称中有多少是可以接受彩虹表攻击的呢?

文本文件的构建方式如下:

collected.txt:

代码语言:javascript
复制
linksys
internet
hotspot

大多数常见的访问点名称称为SSID.txt:

代码语言:javascript
复制
default
NETGEAR
Wireless
WLAN
Belkin54g

因此,脚本应该对这些行进行排序,比较它们,并显示collected.txt中的行在SSID.txt中找到了多少次。

这说得通吗?如有任何帮助,将不胜感激:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-27 12:05:15

如果您不介意使用python脚本的话:

代码语言:javascript
复制
file1=open('collected.txt', 'r')            # open file 1 for reading
with open('SSID.txt', 'r') as content_file: # ready file 2
    SSID = content_file.read()

found={}                                    # summary of found names
for line in file1:
    if line in SSID:
        if line not in found:
            found[line]=1
        else:
            found[line]+=1
for i in found:
    print found[i], i                       # print out list and no. of occurencies

...it可以在包含这些文件的dir中运行-- collected.txt和SSID.txt --它将返回如下所示的列表:

代码语言:javascript
复制
5 NETGEAR
3 default
(...)

脚本逐行读取文件1,并将其与整个文件2进行比较。它可以很容易地修改,以便从命令提示符中获取文件名。

票数 2
EN

Stack Overflow用户

发布于 2014-03-27 11:51:39

首先,看看关于sdiff命令的一个简单教程,比如如何比较Linux或UNIX下的两个文件。而且,Notepad++支持这一点。

票数 0
EN

Stack Overflow用户

发布于 2014-03-27 11:56:45

要查找文件A中每一行出现在B文件中的次数,您可以这样做:

代码语言:javascript
复制
awk 'FNR==NR{a[$0]=1; next} $0 in a { count[$0]++ } 
    END { for( i in a ) print i, count[i] }' A B

如果希望对输出进行排序,则将输出输送到sort,但是不需要仅仅为了查找计数就进行排序。请注意,可以以消耗更多内存为代价省略$0 in a子句,如果文件B非常大,这可能是一个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22686690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档