長さが 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
あなたの質問(IMHO)はで最もよく解決されますが、awk
あなたのコマンドに1つの問題を指摘したいと思います。
grep -E '^.{10}$'| grep 'a*.e*.i*.o*.u*' words2.txt
word2.txt
2回の呼び出しでファイルの内容をフィルタリングするには、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
、BSD、awk
および過去のPOSIX実装は正規表現をawk
サポートしていません。{n}
ステファン・チャゼラスは次のように指摘しています。。