logo

Linux/Unix の Grep コマンドと例

「grep」コマンドは次のことを表します。 「グローバル正規表現印刷」 。 grep コマンドはファイルの内容をフィルタリングするため、検索が簡単になります。

Javaの条件演算子

これは、プレーンテキスト データ グループで正規表現と同じ行を検索するコマンド ライン ユーティリティです。名前 'グリップ' これはコマンド、つまり ed に由来しており、同じ効果が含まれています。元々、grep は Unix オペレーティング システム用に設計されましたが、後にすべての Unix 系システムや、OS 9 などの他のいくつかのシステムでも利用できるようになりました。

grep フィルターは、特定の文字パターンのファイルを検索し、そのパターンを含むすべての行を表示します。シェルにとって特別な意味を持つ文字がパターンパラメータに出現する場合、文字を引用符で囲む必要があります。通常、パターン パラメータが共通の文字列でない場合は、パターン全体を 1 つの引用符で囲む必要があります。

[a-z] のような式では、マイナス記号 (-) cml は現在の照合順序に基づく範囲を表します。照合順序では、使用する文字範囲内の同等のクラスを指定できます。 grep コマンドは、ファイルが指定されていない場合は stdin を想定します。

このパターンは、ファイル内にある正規表現と呼ばれます。パターンは、egrep または ed コマンドの形式の制限された正規表現です。 grep コマンドは、確実な非決定的アルゴリズムを適用します。大きなログ ファイルをフィルタリングする必要がある場合に便利です。

grep の簡単な歴史

grep というタイトルが付けられる前は、grep は、によって指定された機密ユーティリティでした。 ケン・トンプソン いくつかのパターンのファイルを検索します。その存在は知られていないが、 ダグ・マックルロイ トンプソン氏にそのような関数を指定するよう依頼した。そのようなユーティリティについては一晩で考えますと答えました。トンプソンは、として知られる彼のプログラムで約 1 時間にわたって改善を行い、沼地を修正しました。 「さん」 (または検索)。翌日、彼はその機能をマックルロイに提示しましたが、マックルロイはそれが彼が望んでいたものと同じであると言いました。 Thompson の説明には、grep コマンドが一夜にして指定されたという信念が記述されている可能性があります。

Thompson は、サポートする PDP-11 アセンブリ言語の初期バージョンを指定しました リー・E・マクモハン フェデラリスト論文の本文をチェックして、個々の論文の著者を決定します。 ed テキスト エディターは正規表現をサポートしていましたが、そのような大きなテキストには使用できませんでした。トンプソン氏はそのコードをスタンドアロン ツールにコピーしました。彼は編集中にその名前を選びました。 grep コマンドは、記述されたパターンと同じすべての行を出力します。まず、grep はバージョン 4 Unix で追加されました。 「一般に、典型的なソフトウェア ツールとして引用されています」 、Mclroy は grep を承認しました。 「取り返しのつかないほど染み付いている」 Unix におけるトンプソンのツール哲学。

grepの実装

さまざまな grep 実装が、いくつかのソフトウェア開発環境およびオペレーティング システムに存在します。初期のバージョンには、Unix 7 バージョンで導入された fgrep と egrep が含まれていました。 egrep バージョンは、Ken Thompson によるオリジナルの正規表現の実装後に Alfred Aho によって組み込まれた拡張正規表現の構文をサポートしています。 fgrep バージョンは、次のような固定文字列リストを検索します。 Aho-Corasick 文字列マッチング アルゴリズム 。これらのバージョンのバイナリは、一般に POSIX システムに展開されるときに追加された正しいフラグを使用して grep に接続するか、シェル スクリプトの grep を呼び出すことで、最新のシステムで利用できます。

他のコマンドには次のものがあります。 'グリップ' 検索ツール (通常は正規表現の一致に依存するツール) であることを表す単語。たとえば、ユーティリティ、つまり、 'pgrep' 、タイトルが指定された正規表現と同じであるプロセスを示します。

  • Grep は、リスト内の特定のプロパティを面白がる要素を検索する組み込み関数のタイトルです。 パール プログラミング言語。
  • 通常、この高次関数は次のように呼ばれます。 'フィルター' または 'どこ' 別の言語で。
  • コマンド、つまり、 クレグレップ は、Perl 正規表現の構文を利用する grep 実装です。 -P フラグを使用すると、同じ機能を grep GNU バージョンに追加できます。
  • また、grep ポート (例: GnuWin32 そして シグウィン ) Microsoft Windows 上で実行されます。いくつかの Windows バージョンでは、同じ findstr または qgrep コマンドが提供されています。
  • また、grep コマンドは、MSX-DOS の 2 バージョン用の ASCII の MSX-DOS2 ツールの一部です。
  • fgrep、egrep、および grep コマンドは、IBM i OS に同梱されています。
    Adobe InDesign ソフトウェアには、「GREP」タブの変更/検索ダイアログ ボックスに GREP 機能があり (CS3 版以降)、CS4 を使用して指定します。 「GREP スタイル」 段落スタイル。

Linux に grep をインストールするにはどうすればよいですか?

Grep は、Linux のほぼすべてのディストリビューションにプリインストールされています。ただし、システムにない場合は、ターミナル ウィンドウで以下のコマンドを使用してインストールできます。

 $ sudo apt-get install grep 

パイプを使用した grep

Java int から char へ

「grep」コマンドは通常、パイプとともに使用されます。 (|)

構文:

 command | grep 

例:

このxdはどういう意味ですか
 cat marks.txt | grep 9 

Linux Grep フィルター1

上記のスナップショットを見ると、grep コマンドは「9」を含むすべてのデータをフィルター処理します。

パイプなしの grep

パイプなしでも使用可能です。

構文:

 grep 

例:

 grep 9 marks.txt 

Linux Grep フィルター2

上記のスナップショットを見てください。 grep コマンドは、パイプを使用しない以外は前の例と同じ作業を実行します。

BFS検索

grep オプション

    grep -vM: 「grep -v」コマンドは、指定された単語に一致しない行を表示します。

    構文:

     grep -v 

    例:

     grep -v 9 marks.txt 

    Linux Grep フィルター3

    上記のスナップショットを見て、コマンドを実行します。 「grep -v 9 マーク.txt」 検索ワード「9」を含まない行を表示します。

    grep -i注:「grep -i」コマンドは、大文字と小文字を区別しない方法で出力をフィルタリングします。

    構文:

     grep -i 

    例:

     grep -i red exm.txt 

    Linux Grep フィルター4

    上記のスナップショットを見て、コマンドを実行します。 'grep -i red exm.txt' 大文字でも小文字でも、「red」を含むすべての行を表示します。

    grep -A/ grep -B/ grep -C

    grep -A コマンドは、 結果の後の行

    grep -B コマンドは、 結果の前の行

    grep -C コマンドは、 後の行と前の行 結果。

    (A1、A2、A3....)(B1、B2、B3....)(C1、C2、C3....) を使用して、任意の数の行を表示できます。

    構文:

    「ライオンとトラの違いは何ですか」
     grep -A grep -B grep -C 

    例:

     grep -A1 yellow exm.txt grep -B1 yellow exm.txt grep -C1 yellow exm.txt 

    Linux Grep フィルター5

    上記のスナップショットを見て、コマンドを実行します。 'grep -A1 yellow exm.txt' 検索された行を次の行とともに表示します。コマンド 'grep -B1 yellow exm.txt' 検索された行をその前の行とコマンドとともに表示します 'grep -C1 yellow exm.txt' 検索された行を前後 1 行ずつ表示します。