GREP如何搜索包含特定字母的单词(一次或多次)?

GREP如何搜索包含特定字母的单词(一次或多次)?,grep,Grep,我正在使用操作系统字典文件进行扫描。我正在创建一个java程序,允许用户输入任意字母组合来查找包含这些字母的单词。如何使用grep命令执行此操作?要查找仅包含给定字母的单词: grep -v '[^aeiou]' wordlist 上面过滤掉单词列表中除所列字符外不包含任何字符的行。这有点像是用双底片来得到你想要的。另一种方法是: grep '^[aeiou]+$' wordlist 在整行中搜索一个或多个选定字母的序列 查找包含所有给定字母的单词要长一点,因为在我们想要的字母之间可能有其他

我正在使用操作系统字典文件进行扫描。我正在创建一个java程序,允许用户输入任意字母组合来查找包含这些字母的单词。如何使用grep命令执行此操作?

要查找仅包含给定字母的单词:

grep -v '[^aeiou]' wordlist
上面过滤掉
单词列表
中除所列字符外不包含任何字符的行。这有点像是用双底片来得到你想要的。另一种方法是:

grep '^[aeiou]+$' wordlist
在整行中搜索一个或多个选定字母的序列


查找包含所有给定字母的单词要长一点,因为在我们想要的字母之间可能有其他字母:

cat wordlist | grep a | grep e | grep i | grep o | grep u

(是的,上面的
cat
没有任何用处,但这样对称性更好。)

如果您的
grep
支持PCRE,您可以使用一个
grep
来解决Greg答案中的最后一个问题。(基于,简化了一点)


正向前瞻意味着它将在任何地方匹配“a”和“e”,并且。。。。等等。

您想查找包含这些字母中的任何一个、所有这些字母还是仅包含这些字母的单词?@GregHewgill我想查找一个选项中的所有字母,另一个选项中仅包含这些字母。您可能会发现以下内容很有帮助:
grep -P "(?=.*a)(?=.*e)(?=.*i)(?=.*o)(?=.*u)" wordlist