linux - 查找包含 20 个元音字母的单词 grep

标签 linux unix grep

我发现了很多类似的问题,但其中大部分要求的是连续的元音字母,这很容易。我想使用 grep 查找不连续包含 20 个元音的单词。

我原本以为 grep -Ei [aeiou]{20} 会这样做,但似乎只连续搜索 20 个元音

最佳答案

使用正则表达式搜索由任意数量的辅音分隔的 20 个元音。

grep -Ei "[aeiou][b-df-hj-np-tv-z]*[aeiou][b-df-hj-np-tv-z]*\
[aeiou][b-df-hj-np-tv-z]*[aeiou][b-df-hj-np-tv-z]*[aeiou][b-df-hj-np-tv-z]*\
[aeiou][b-df-hj-np-tv-z]*[aeiou][b-df-hj-np-tv-z]*[aeiou][b-df-hj-np-tv-z]*\
[aeiou][b-df-hj-np-tv-z]*[aeiou][b-df-hj-np-tv-z]*[aeiou][b-df-hj-np-tv-z]*\
[aeiou][b-df-hj-np-tv-z]*[aeiou][b-df-hj-np-tv-z]*[aeiou][b-df-hj-np-tv-z]*\
[aeiou][b-df-hj-np-tv-z]*[aeiou][b-df-hj-np-tv-z]*[aeiou][b-df-hj-np-tv-z]*\ 
[aeiou][b-df-hj-np-tv-z]*[aeiou][b-df-hj-np-tv-z]*[aeiou][b-df-hj-np-tv-z]*" 

反斜杠只是通知 shell 表达式在下一行继续。它不是正则表达式本身的一部分。

如果您了解该部分,则可以使用组大大缩短它。此正则表达式与上面相同,但在括号中重复使用组。

grep -Ei "([aeiou][b-df-hj-np-tv-z]*){20}"

关于linux - 查找包含 20 个元音字母的单词 grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54641294/

相关文章:

php - 使用 puppet 自动安装 msodbcsql

json - 使用Sed查找并替换json字段

c++ - 函数的多重声明 make 命令 UNIX

regex - 从文件名中有选择地提取数字

linux - 如何 grep 查找文件中的特定模式

linux - "No such file or directory"在 bash 的 while 读取循环中使用 cut

database - 与谷歌应用程序引擎兼容的简单网络应用程序

linux - 将 linux 命令的值存储到 groovy 脚本(soapui)中的变量

java - 尝试使用 GUI 运行 Java 实用程序时出现 X11 Frwarding 错误

string - grep + sed 替换字符串周围的字符