1

「grep」を使用してテキスト ファイル内のパターンの組み合わせを検索する方法は何ですか?

たとえば、「by the way」と、「way by the」や「the way by」などの他の可能な組み合わせを探しているとします。

ありがとう。

4

2 に答える 2

2

このためのツールは awk であり、grep ではありません。1 行で:

awk '/by/ && /the/ && /way/' file

ファイル全体:

gawk -v RS='\0' '/by/ && /the/ && /way/' file

これは 3 つの単語を検索していることに注意してください。これらの 3 つの単語の間にスペースを入れた組み合わせを検索しているわけではありません。それはあなたが望むものですか?

さらにヘルプが必要な場合は、サンプル入力や期待される出力などの詳細を提供してください。

于 2013-02-17T14:20:37.917 に答える
1

最も簡単な方法は、おそらく正規表現を使用することです。しかし、これも少し間違っています。

egrep '([ ]*(by|the|way)\>){3}'

これが行うことは、3 つの単語のグループで一致することです。単語の前にスペースがあれば (存在する場合)、完全な単語になるように強制し (したがって\>末尾に があります)、次のいずれかの場合は文字列を一致させます。グループ内の単語は 3 回出現します。

実行例:

$ echo -e "the the the\nby the\nby the way\nby the may\nthe way by\nby the thermo\nbypass the thermo" | egrep '([ ]*(by|the|way)\>){3}'
the the the
by the way
the way by

すでに述べたように、これは「偽」陽性を引き起こしますが、それを受け入れるthe the theことができる場合は、この方法で行うことをお勧めします.

于 2013-02-17T00:54:16.783 に答える