grep で単語を除外する方法

目次:

Anonim

grep コマンド ライン ツールは、定義された文字列、文字、単語、または正規表現に一致する行やスニペットをテキスト データから検索するのに非常に便利です。 grep のほとんどの用途は、構文一致のためにデータをソートすることですが、代わりに grep を使用して単語または文字列を除外したい場合はどうすればよいでしょうか? grep で一致する行を除外することは、grep で一致を見つけて出力するのと同じくらい便利なので、文字列の一致を除外し、grep で単語を除外する方法について説明しましょう。

明らかに、ある程度のコマンド ラインの経験があり、grep を使用した経験があれば、これが役立つことがわかります。先に進みたい場合は、ターミナル アプリケーションを開いて自分で試すことができます。 grep は OS に依存しないユーティリティであるため、Mac OS、Linux、Unix、または grep を使用する他のあらゆる環境で除外トリックを使用できます。

grep で単一の単語を除外する方法

文字列または構文が一致する行を除外する最も簡単な方法は、grep と -v フラグを使用することです。

たとえば、コマンド ラインで cat を使用してファイルを出力するとしますが、「ThisWord」という用語を含むすべての行を除外したい場合、構文は次のようになります。

"

cat example.txt | grep -v ThisWord​​"

出力は example.txt テキスト ファイルになりますが、「ThisWord」と一致する文字列を含む行は除外されます。

ファイルに対して直接 grep を使用して、次のように単語や構文に基づいて一致する行を除外することもできます:

"

grep -v ThisWord>"

特定のワークフローに最適な方を使用してください。

grep で複数の文字列または単語を除外する方法

単一の単語の一致を除外する方法がわかったので、次の明らかな問題は、grep を使用して複数の単語を除外することです。これも同様に簡単で、-v フラグと -e フラグを使用してこれを実現する方法がいくつかあります。

まず、grep にパイプされたファイルで cat を使用する上記の例を取り上げ、2 つの単語に一致する行を除外します。 「Word1」と「Word2」、これは次のようになります:

"

cat example.txt | grep -v -e Word1 -e Word2"

「Word1」または「Word2」を含む行は印刷結果から除外されます。

以前と同じようにファイルに対して grep を直接使用することもできます:

"

grep -v -e Word1 -e Word2 example.txt"

もう 1 つの方法は、次のようにパイプを使用して各一致を区切ることにより、grep で除外するものを区切ることです:

"

grep -Ev word1|word2 example.txt"

サンプル テキスト ファイルでこれらのオプションのいずれかをテストすると、対象となるフレーズ、構文、単語、またはテキスト一致。

いいですね、grep でデータを除外する便利な例を教えてください!

.出力。

ここの例では、デフォルト文字列の一致のコマンド履歴を出力しますが、「com.apple.itunes」で定義されているように、iTunes に関係する一致はすべて除外します:

"

history |grep defaults write |grep -v -e com.apple.itunes"

したがって、従うなら、これは「defaults write」コマンドのすべての履歴実行を報告しますが、iTunes アプリケーションに関連するものは除外します。いいね?

grep で一致を除外するのに特に便利な使い方があれば、下のコメント欄で共有してください!そして、この記事を楽しんでいただけたなら、学ぶべきことがたくさんあるコマンド ラインに関する多くの記事を参照してみてください!

grep で単語を除外する方法