![使用 grep 查找任何包含字母 a、e 或 i 后跟字母 o 或 u 的行](https://linux22.com/image/189198/%E4%BD%BF%E7%94%A8%20grep%20%E6%9F%A5%E6%89%BE%E4%BB%BB%E4%BD%95%E5%8C%85%E5%90%AB%E5%AD%97%E6%AF%8D%20a%E3%80%81e%20%E6%88%96%20i%20%E5%90%8E%E8%B7%9F%E5%AD%97%E6%AF%8D%20o%20%E6%88%96%20u%20%E7%9A%84%E8%A1%8C%20.png)
grep [aei].*[ou]
这个命令是错误的。
答案1
删除.*
之间的(即表示除换行符之外的零个或多个任意字符),表示a
,e
或i
字符中的任何一个立即地其后o
或u
之间没有任何其他内容。
另一件事是您需要引用该模式以避免 shell 通配解释。
grep '[aei][ou]' infile
grep [aei].*[ou]
这个命令是错误的。
删除.*
之间的(即表示除换行符之外的零个或多个任意字符),表示a
,e
或i
字符中的任何一个立即地其后o
或u
之间没有任何其他内容。
另一件事是您需要引用该模式以避免 shell 通配解释。
grep '[aei][ou]' infile