grep -Ev '[^aeiouy]{2}'
答えを提供する必要があります(各入力行にASCII小文字で構成される1つの単語のみが含まれていると仮定)。
しかし、これを行う方法はありますか-v
?
ベストアンサー1
正の一致のためには、子音がある場合は子音が後ろまたは前に来ていないことを確認し、各子音の前に初音または母音が続き、後ろに縦性または母音が来るかどうかを確認する必要があります。 。
だから:
v='[aeiouy]' c='[^aeiouy]'
grep -xE "($c?$v)*$c?"
$ grep -cxE "($c?$v)*$c?" /usr/share/dict/words
11353
$ grep -cvE "$c$c" /usr/share/dict/words
11353
$ diff -s <(grep -xE "($c?$v)*$c?" /usr/share/dict/words) <(grep -vE "$c{2}" /usr/share/dict/words)
Files /proc/self/fd/11 and /proc/self/fd/18 are identical