我发现了很多类似的问题,但其中大部分要求的是连续的元音字母,这很容易。我想使用 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/