简而言之,我的问题是,我想要在二进制文件上运行“字符串”时输出的英文单词列表。目前,我在该文件上运行它时会转储很多屏幕上的垃圾,我只对单词感兴趣。
在这里搜索之后,我发现 grep -f 伴随着Linux 字典文件会做我想做的事,但这是慢的。
有没有更快的替代方法,或者匹配英文单词真的那么困难吗?
答案1
匹配并不难,问题是你要将一个可能很长的列表与一个非常长的列表进行匹配。由于需要进行的比较次数太多,因此需要很长时间。
答案2
当 Grep 知道它只匹配固定字符串(相对于正则表达式)时,它可以使用更快的匹配算法。您可以通过提供参数-F
或使用fgrep
命令来启用此行为。
完整命令是:
strings fileToScan | grep -F -f /usr/share/dict/words
假设字典文件位于 /usr/share/dict/words