
長さが 10 文字で、連続する 3 つの母音の部分文字列を含む単語のセット。これまで、これらのコマンドを試しました。
grep -E '^.{10}$'| grep 'a*.e*.i*.o*.u*' words2.txt
grep -E '^.{10}$&a*.e*.i*.o*.u*' words2.txt
OCRで抽出した入力データこのスクリーンショット:
unpernicious
unperspicuous
unpervious
unpious
unpiteous
unpiteously
unpiteousness
unplebeian
unplenteous
unportmanteaued
unportuous
unprecarious
unprecious
unprecocious
unpredacious
unpresumptuous
unpresumptuously
unpretentious
unpretentiously
unpretentiousness
unpromiscuous
unpropitious
unpropitiously
unpropitiousness
unpugnacious
unpunctilious
unquailed
unquailing
unquailingly
unqueen
unqueened
unqueening
unqueenlike
unqueenly
unquiescence
unquiescent
unquiescently
unquiet
unquietable
unquieted
unquieting
unquietly
unquietness
unquietude
unrapacious
unrebellious
unreligious
unreligiously
unreligiousness
unrighteous
unrighteously
unrighteousness
unsacrilegious
Unsagacious
unsalubrious
unsanctimonious
unsanctimoniously
unsanctimoniousness
unsanguineous
unsanguineously
unseditious
unseeable
unseeing
答え1
あなたの問題は(私見では)で解決した方が良いと思いますawk
が、私はあなたのコマンドの問題を指摘します
grep -E '^.{10}$'| grep 'a*.e*.i*.o*.u*' words2.txt
word2.txt
両方の呼び出しを通じてファイルの内容をフィルタリングするにはgrep
、次のようになります。
grep -E '^.{10}$' words2.txt | grep 'a*.e*.i*.o*.u*'
2番目のgrep
パターンは となり[auoie]{3}
、
grep -E '^.{10}$' words2.txt | grep -E '[aouie]{3}'
最初の入力grep
はファイルです。2番目の入力grep
は最初の出力ですgrep
。ないあなたのファイル。
POSIX を使用するawk
(GNU の最新バージョンなどawk
):
$ awk 'length == 10 && /[aouei]{3}/' words2.txt
unpervious
unplebeian
unportuous
unprecious
unquailing
unqueening
unquieting
unquietude
mawk
、BSDawk
および歴史的なPOSIX以前の実装では、正規表現ではawk
サポートされていません。{n}
ステファン・シャゼラスが指摘した。
答え2
10 文字は正解ですが、3 つの母音を続けて見つけるには、グループを探します[AEIOU]
。
egrep '^.{10}$' | egrep -i '[AEIOU]{3}'
ホワイトスペースを拒否するには、これを使用します。
egrep '^[^ \t]{10}$' | egrep -i '[AEIOu]{3}'
答え3
1 語/行と仮定すると、次の操作を実行できます。
sed -nE '/^.{10}$/!d;/[aAeEiIoOuU]{3}/p' words.txt
答え4
grep
PCRE サポートが組み込まれている場合:
grep -iPx '(?=.*[aeiou]{3}.*).{10}'
または:
grep -wiP '(?=\w*[aeiou]{3}\w*)\w{10}'
1行に1つではない単語を検索する(実装でサポートされている-o
場合は追加してgrep
、見つかった行全体ではなく一致する単語のみを印刷します)。言葉任意のシーケンスを意味する言葉文字 (文字 (ラテン文字のみ、発音区別符号なし。どの文字でも文字には を追加しますが、や(*UCP)
などの母音はカバーされません)、数字、およびアンダースコア)。é
α