LinuxのGrepコマンド

Grep Command Linux



Grep(グローバル正規表現print)コマンドは、最も強力で定期的に使用されるLinuxコマンドラインユーティリティです。 Grepを使用すると、検索条件を指定して有用な情報を検索できます。指定されたファイルで特定の式パターンを検索します。一致するものが見つかると、指定されたパターンに一致したファイルのすべての行が出力されます。大きなログファイルをフィルタリングする必要がある場合に便利です。

この記事では、さまざまな例を使用してgrepユーティリティの使用について説明します。この記事で言及されているコマンドとメソッドを説明するためにDebian10を使用します。







Grepのインストール

Grepは、ほとんどのLinuxディストリビューションにインストールされています。ただし、システムにない場合は、ターミナルで次の方法を使用してインストールできます。



$sudo apt-get install グリップ

Grepの使用

grepコマンドの基本的な構文は次のとおりです。 grepで始まり、いくつかのオプションと検索条件が続き、ファイル名で終わります。



$グリップ [オプション]パターン[ファイル...]

ファイルを検索する

特定の文字列を含むディレクトリでファイル名を検索するには、次の方法でgrepを使用できます。





$ls -NS | グリップ -私ストリング

たとえば、文字列を含むファイル名を検索するには テスト 、コマンドは次のようになります。

$ls-NS| グリップ-私テスト

このコマンドは、文字列を含むすべてのファイルを一覧表示します テスト



ファイル内の文字列を検索する

特定のファイル内の文字列を検索するには、次のコマンド構文を使用できます。

$グリップ文字列ファイル名

たとえば、文字列を検索するには テスト 名前の付いたファイル内 testfile1次のコマンドを使用しました

$グリップ従業員testfile1

上記の出力は、から文を返しました testfile1 文字列を含む 社員

複数のファイルで文字列を検索する

複数のファイルで文字列を検索するには、次のコマンド構文を使用できます。

$グリップ文字列filename1filename2

たとえば、2つのファイルtestfile1とtestfile2で文字列employeeを検索するには、次のコマンドを使用しました。

$グリップ従業員testfile1testfile2

上記のコマンドは、ファイルtestfile1とtestfile2の両方から文字列employeeを含むすべての行を一覧表示します。

すべてのファイル名が同じテキストで始まる場合は、ワイルドカード文字を使用することもできます。

$グリップ文字列ファイル名*

たとえば、ファイル名が testfile1およびtestfile2 、コマンドは次のようになります。

$グリップ従業員テストファイル*

文字列の大文字と小文字を区別せずに、ファイル内の文字列を検索します

ほとんどの場合、grepを使用して何かを検索したが、出力を受け取らなかったときに、これに遭遇しました。これは、文字列の検索中に大文字と小文字が一致しないために発生します。私たちの例のように、誤って使用した場合 社員 それ以外の 社員 、ファイルに文字列が含まれているため、nilが返されます 社員 小文字で。

次のように、grepの後に–iフラグを使用して、検索文字列の大文字と小文字を無視するようにgrepに指示できます。

$グリップ–i文字列ファイル名

–iフラグを使用すると、コマンドは大文字と小文字を区別しない検索を実行し、文字列を含むすべての行を返します。 社員 大文字または小文字を考慮せずにその中にあります。

正規表現を使用して検索する

適切に使用すれば、正規表現はgrepの非常に効果的な機能です。 Grepコマンドを使用すると、開始キーワードと終了キーワードを使用して正規表現を定義できます。そうすることで、grepコマンドで行全体を入力する必要がなくなります。この目的のために、次の構文を使用できます。

$グリップ開始キーワード。*終了キーワードファイル名

たとえば、文字列thisで始まり、文字列dataで終わるtestfile1という名前のファイルの行を検索するには、次のコマンドを使用しました。

$グリップこれ。*データtestfile1

から行全体を印刷します testfile1 式を含みます(開始キーワードthisと終了キーワードデータ)。

検索文字列の前後に特定の行数を出力します

文字列の一致の前後に、一致した文字列自体とともに、ファイル内の特定の行数を表示することもできます。この目的には、次の構文を使用できます。

$グリップ -に <NS>>文字列ファイル名

一致した文字列を含む指定されたファイルで文字列が一致した後、N行が表示されます。

たとえば、これはという名前のサンプルファイルです testfile2

次のコマンドは、文字列を含む一致した行を出力します 社員 、その後の2行とともに。

$グリップ-に2–i従業員testfile2

同様に、特定のファイルで一致した文字列の前にN行を表示するには、次の構文を使用します。

$グリップ -NS <NS>>文字列ファイル名

特定のファイルの文字列の周囲にN行を表示するには、次の構文を使用します。

$グリップ -NS <NS>>文字列ファイル名

検索を強調表示する

Grepはデフォルトで一致した行を出力しますが、行のどの部分が一致したかは表示しません。 grepで–colorオプションを使用すると、ファイル内の加工文字列が表示される場所が表示されます。 Grepはデフォルトで、強調表示に赤い色を使用します。

この目的には、次の構文を使用できます。

$グリップ文字列ファイル名 - 色

一致数を数える

特定の単語が特定のファイルに出現する回数をカウントする場合は、-cオプションを指定してgrepを使用できます。一致自体ではなく、一致の数のみを返します。この目的には、次の構文を使用できます。

$グリップ–c文字列ファイル名

サンプルファイルは次のようになります。

以下は、単語の回数を返すコマンドの例です。 ファイル という名前のファイルに登場 testfile3

逆検索

入力に一致するものを除くすべての行を表示する逆検索を実行したい場合があります。これを行うには、–vフラグに続けてgrepを使用するだけです。

$グリップ–v文字列ファイル名

たとえば、ファイル内のすべての行を表示するには testfile3 アカウントという単語が含まれていない場合は、次のコマンドを使用しました。

$グリップ–vアカウントtestfile3

他のコマンドでGrepを使用する

Grepを使用して、さまざまなコマンド出力から必要な結果を除外することもできます。たとえば、 apt –インストール済みリスト コマンド出力で、自動的にインストールされたパッケージのみを検索したい場合は、次のようにgrepを使用して結果をフィルターで除外できます。

$apt-インストール済みリスト| グリップ自動

同様に、lscpuはCPUに関する詳細情報を提供します。 CPUアーキテクチャに関する情報だけに関心がある場合は、次のコマンドを使用してフィルターで除外できます。

$lscpu| グリップ建築

この記事では、grepコマンドとさまざまな条件でのその使用法を理解するのに役立ついくつかの例について説明しました。 grepコマンドをしっかりと把握しておくと、大きな構成ファイルやログファイルを調べて、それらを介して有用な情報をざっと読む必要がある場合に、多くの時間を節約できます。