LinuxでGrepコマンドを使用する方法

ファイルの内容を簡単にフィルタリングして表示するための実用的な例を使用してgrepコマンドを理解する

GREP 「GlobalRegularExpressionPrint」の略です。 Linuxが提供する便利なコマンドラインユーティリティで、ユーザーが提供するパターンに一致するテキスト行を検索します。

grep ユーザーが特定のファイルで検索したい文字列または単語の形式でユーザーからの入力を受け取ります。次に、コマンドはユーザーが指定したファイルでこのパターンをチェックし、指定されたパターンに一致する行を返します。

ファイルのコンテンツをフィルタリングすることで優れた機能を果たし、単一または複数のファイルの特定のコンテンツを同時に検索するタスクを容易にします。

この記事では、の機能を確認しましょう grep いくつかの実用的な例を詳細に示したコマンド。

で利用可能なオプション grep 指図

これらは、頻繁に使用する基本的なオプションの一部です。 grep 指図。

オプション説明
-私大文字と小文字を区別しない検索の場合
-r指定されたディレクトリとそのサブディレクトリ内のすべてのファイルを再帰的に検索するには
-c文字列が表示される合計回数を表示するには
-v一致しない行を表示するには
-w個別に使用される特定の単語をフィルタリングする

を使用して grep 指図

grep コマンドは通常、パイプで使用されます(|) 効用。他のLinuxコマンドで使用する場合は、シェルパイプを使用して実装できます。それでも、 grep パイプなしで個別に使用することもできます(|) 効用。

の基本的な構文のいくつかを見てみましょう grep パイプユーティリティがある場合とない場合のコマンド。

まず、説明に使用するサンプルテキストファイルを紹介します。 grep 指図。

インドは平和を愛する人々の美しい国です。インドは、立法府、行政、司法の3つの柱に立っています。インドは平和を愛する人々の美しい国です。インドは、すべてのデカルト座標の重要性をデカルト座標で調整するため、人々の世話をしています。以下は2つの空の行です。牛車の使用は、農耕の雑用のために村で一般的な光景です。これでサンプルファイルは終わりです。

grep パイプで使用(|)効用

grep コマンドは、シェルパイプを使用して他のLinuxコマンドと一緒に実装できます。のように、 ファイルの内容を表示すると同時に、を使用して出力をパイプするコマンド grep 見たいコンテンツのみを表示するコマンド。例を見ると、これはより明確になります。

構文:

[コマンド] | grep [文字列]

:

cat sample.txt | grep議会

ここでは、 「sample.txt」ファイルのいくつかの行を表示するコマンド。 「議会」という単語を含む行のみが表示され、残りの行は無視されます。

出力:

gaurav @ ubuntu:〜/ worksheet $ cat sample.txt | grep立法府インドは、立法府、行政、司法の3つの柱の上に立っています。 gaurav @ ubuntu:〜/ worksheet $

grep パイプなしで使用(|)効用

grep パイプを使用せずに、個別のコマンドとして直接使用することもできます( | ) 効用。

構文:

grep [string_to_be_searched] [ファイル名]

:

grep India sample.txt

出力:

インドは平和を愛する人々の美しい国です。インドは資源として人々を大切にしています

したがって、私は使用しました grep テキストファイル「sample.txt」から文字列「India」を含む行を直接フィルタリングするコマンド。

大文字と小文字を区別しない検索 grep 指図

Linuxは、ターミナルでコマンドを実行するときの大文字と小文字の区別に非常に注意を払っています。これには、ユーザーがコマンドに入力される文字列の大文字と小文字に注意する必要があります。

例を通してこれを見てみましょう。

grep peace sample.txt

この場合、サンプルファイルに「peace」という単語が存在しないため、出力は取得されません。大文字の「P」が付いた「Peace」という単語があります。言葉は同じですが、私たちが使用するとき grep オプションを指定せずにコマンドを実行すると、大文字と小文字の変更を無視して、ファイル内の完全一致を検索します。

このあいまいさを避けるために、あなたは単に使用することができます -私 文字通り伝えるオプション grep 指図 「文字列を入力した場合は忘れて、ファイル内の一致するすべてのパターンを検索してください。」

構文:

grep -i [文字列] [ファイル名]

:

grep -i peace sample.txt

出力:

インドは平和を愛する人々の美しい国です。インドは平和を愛する人々の美しい国です。

一致する文字列の場合に関係なく、一致するすべての行が表示されます。

を使用した再帰検索 grep 指図

The -r オプションは、コマンドでユーザーが指定した文字列パターンに一致するディレクトリとそのすべてのサブディレクトリ内のすべてのファイルを検索します。

構文:

grep -i -r [string] [file_path]

:

grep -i -r tomcat / home / gaurav / workspace

ここでの文字列は「tomcat」であり、ディレクトリワークスペースで検索されます。 「workspace」ディレクトリ内のすべてのサブディレクトリとファイルもスキャンされ、提供された文字列パターンと一致します。

出力:

./context_log.policy:// catalina.policy-Tomcat7のセキュリティポリシー権限./context_log.policy://注:tomcat-juli.jarが$ {catalina.base}にあり、$ {catalina.homeにない場合}、。/ context_log.policy:// grant codeBase "file:$ {catalina.base} /bin/tomcat-juli.jar" {..} ./context_log.policy:grant codeBase "file:$ {catalina.home } /bin/tomcat-juli.jar "{./context_log.policy:permission java.lang.RuntimePermission" accessClassInPackage.org.apache.tomcat.websocket.server "; ./context.xml:./catalina.properties:#-TomcatブートストラップJAR ./catalina.properties:#-Tomcat API JAR ./catalina.properties:#-Tomcat JAR ./catalina.properties:#-一般的な非Tomcat JAR ./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar ./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true ./catalina.properties:# tomcat.util.buf.StringCache.char.enabled = true ./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000 ./catalina.properties:#tomcat.util.buf.StringCache.cacheSize=5000。 /server.xml:pathname = "conf / tomcat-users.xml" /> ./server.xml: 

ノート:使用中 -r オプションと grep コマンドファイル名ではなくファイルのパスを指定する必要があります

単語全体を検索する grep 指図

多くの場合、1つの単語を検索しますが、個々の単語としてではなく、一致する単語を含む一致する行を端末に入力することになります。入力した文字列をサブパートとする単語を含む行が表示される場合があります。

これと混同しますか?心配しないでください。例を取得すると、はるかに理解しやすくなります。

:

ここでは、個々の単語「cart」を検索し、この単語に一致するすべての行をファイル「sample.txt」に表示します。

grep -i cart sample.txt

出力:

デカルト座標は、すべてのデカルト座標の重要性を調整します。牛車の使用は、村で農耕の雑用のためによく見られる光景です。少年がカートを緩めたままにしておくと、カートは行方不明になりました。

出力では、「Cartesian」という単語に「cart」という単語も含まれていることがわかります。したがって、「Cartesian」という単語を含む行も、表示したくない場合でも表示されます。

あなたは使用することができます -w オプションと grep このあいまいさを解決するコマンド。

構文:

grep -i -w [文字列] [ファイル名]

:

grep -i -w cart sample.txt

出力:

牛車の使用は、農耕の雑用のために村で一般的な光景です。少年がカートを緩めたままにしていたので、カートは行方不明になりました。 

さて、あなたが–を使用したときw オプション付き grep 全体として「カート」という単語が使用されている行のみが表示されます。

を使用した逆検索 grep 指図

grep コマンドは逆に使用することもできます。使用できます grep 反対に、一致する行を非表示にし、一致する行が見つからない行のみを表示してコマンドを実行します。あなたはこれを使用して行うことができます -v オプションと grep 指図。

構文:

grep -i -v [文字列] [ファイル名]

:

grep -i -v resource sample.txt

出力:

インドは平和を愛する人々の美しい国です。インドは、立法府、行政、司法の3つの柱に立っています。インドは平和を愛する人々の美しい国です。デカルト座標すべてのデカルト座標の重要性。牛車の使用は、農耕の雑用のために村で一般的な光景です。これでサンプルファイルは終わりです。

出力には、「resource」という単語を含む行以外のすべての行が表示されます。

一致する文字列の出現をカウントする

の出力 grep ファイル内のデータが広範囲にわたる場合、コマンドは通常非常に長くなります。一致が多いほど、出力は長くなります grep 指図。 Linuxには、一致の発生数を表示できるオプションが用意されています。

構文:

grep -i -c [文字列] [ファイル名]

:

grep -i -c india sample.txt

出力:

gaurav @ ubuntu:〜/ worksheet $ grep -i -c india sample.txt 4 gaurav @ ubuntu:〜/ worksheet $

ここで、出力は、ファイルsample.txt内の「India」という単語の出現回数である数値です。

ノート:私は使用しました -私 すべての例で、大文字と小文字の区別の問題を安全に処理するためのオプション。検索している単語の大文字と小文字が確実な場合は、安全に省略できます。 -私 オプション。

結論

の基本的な使用法を学びました grep このチュートリアルのLinuxシステムでのコマンド。また、端末を大量の回線で混雑させずに、要件に最適なさまざまなコンテンツを表示することも学びました。 grep 大きなデータセットをスキャンするために使用する場合、コマンドは確かに時間の節約になります。