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

sta*_*low 4 grep

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

Gre*_*ill 7

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

grep -v '[^aeiou]' wordlist
Run Code Online (Sandbox Code Playgroud)

上面的代码过滤掉了除列出的字符之外wordlist包含任何字符的行。这有点像使用双重否定来得到你想要的东西。另一种方法是:

grep '^[aeiou]+$' wordlist
Run Code Online (Sandbox Code Playgroud)

它在整行中搜索一个或多个选定字母的序列。

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

cat wordlist | grep a | grep e | grep i | grep o | grep u
Run Code Online (Sandbox Code Playgroud)

(是的,上面有一个无用的用途cat,但是这样对称性更好。)