简而言之,我的问题是我想要在二进制文件上运行“字符串”时输出的英文单词列表。目前,我运行它的文件将大量垃圾转储到屏幕上,而我只对确实是单词的单词感兴趣。
在这里闲逛之后,我看到 grep -f 伴随着Linux 字典文件会做我想做的事,但速度很慢。
是否有更快的替代方法,或者匹配英文单词真的那么难吗?
简而言之,我的问题是我想要在二进制文件上运行“字符串”时输出的英文单词列表。目前,我运行它的文件将大量垃圾转储到屏幕上,而我只对确实是单词的单词感兴趣。
在这里闲逛之后,我看到 grep -f 伴随着Linux 字典文件会做我想做的事,但速度很慢。
是否有更快的替代方法,或者匹配英文单词真的那么难吗?
匹配起来并不难,问题是您要将一个可能很长的列表与一个非常长的列表进行匹配。仅由于必须进行的比较数量巨大,这就需要很长时间。
当 Grep 知道它只匹配固定字符串(相对于正则表达式)时,它可以使用更快的匹配算法。
-F
您可以通过提供参数或使用fgrep
命令 来启用此行为。完整的命令是:
假设字典文件存在于 /usr/share/dict/words