【发布时间】:2014-01-20 15:40:06
【问题描述】:
我正在尝试编写一个随机密码生成器。我有一本包含一堆单词的字典,我想删除根已经在字典中的单词,这样字典看起来像:
ablaze
able
abler
ablest
abloom
ably
最终只有
ablaze
able
abloom
ably
因为abler 和ablest 包含之前使用的able。
我更喜欢用 grep 来做这件事,这样我就可以了解更多关于它是如何工作的。我能够用 c 或 python 编写一个程序来做到这一点。
【问题讨论】:
-
你试过什么?你得到了什么?。现在,您的问题似乎是“为我编写这个程序,以便我可以从中学习” - 请展示一些研究成果。
-
@tucuxi 好点。我真的很想看到有人用 grep 来做,因为我可以用 c 或 python 来做。我已更新问题以反映这一点。
-
我认为这比您想象的要复杂得多。盲目地删除以“est”、“er”等结尾的词是一回事,而不是知道两个词是相关的。如果遇到 goose vs geese 这样的词,你会怎么做?或者两个相似但不相关的词呢?例如 doner vs done?
-
@user1146334 我很乐意留下 geese 并删除 doner(虽然 doner 不在那个字典里,但音调和碳粉有同样的问题)。我不打算编译一个英语单词词根列表,只是清除那些会使记住正确密码短语变得更加困难的后缀(它正确吗?更正?更正?马?马?)。
-
添加了概念验证答案。虽然我会推荐 Python(或几乎任何其他东西)而不是 Bash 进行文本处理。
标签: linux bash dictionary grep