使用字符串(命令)仅查找英文单词

使用字符串(命令)仅查找英文单词

简而言之,我的问题是,我想要在二进制文件上运行“字符串”时输出的英文单词列表。目前,我在该文件上运行它时会转储很多屏幕上的垃圾,我只对单词感兴趣。

在这里搜索之后,我发现 grep -f 伴随着Linux 字典文件会做我想做的事,但这是慢的

有没有更快的替代方法,或者匹配英文单词真的那么困难吗?

答案1

匹配并不难,问题是你要将一个可能很长的列表与一个非常长的列表进行匹配。由于需要进行的比较次数太多,因此需要很长时间。

答案2

当 Grep 知道它只匹配固定字符串(相对于正则表达式)时,它可以使用更快的匹配算法。您可以通过提供参数-F或使用fgrep命令来启用此行为。

完整命令是:

strings fileToScan | grep -F -f /usr/share/dict/words

假设字典文件位于 /usr/share/dict/words

相关内容