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

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

GREP'Global Regular ExpressionPrint'の略です。これは、ユーザーが提供したパターンに一致するテキスト行を検索するために、Linuxが提供する便利なコマンドラインユーティリティです。

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

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

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

grepコマンドで利用可能なオプション

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

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

grepコマンドの使用

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

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

最初に、grepコマンドを説明するために使用するサンプルテキストファイルを示します。

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
india stands on three pillars of legislature, executive and judiciary.
India Is a Beautiful Country Of Peace Loving People.
India cares for the people as it's resource
cartesian coordinates
importance of all th cartesian coordinates.
Following are two empty lines.



use of a bullock cart is a common sight in the village for the agrarian chores.

This is the end of the sample file.

grepパイプ(|) ユーティリティで使用

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

構文

[command] | grep [string]

cat sample.txt | grep legislature

ここでは、catコマンドを使用して、「sample.txt」ファイルのいくつかの行を表示しました。'legislature'という単語を含む行のみが表示され、残りの行は無視されます。

出力

[email protected]:~/workspace$ cat sample.txt | grep legislature
india stands on three pillars of legislature, executive and judiciary.
[email protected]:~/workspace$

grepパイプ(|) ユーティリティなしで使用

greppipe( | )ユーティリティを使用せずに、個別のコマンドとして直接使用することもできます。

構文

grep [string_to_be_searched] [filename]

grep India sample.txt

出力

India Is a Beautiful Country Of Peace Loving People.
India cares for the people as it's resource

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

grepコマンドを使用した大文字と小文字を区別しない検索

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

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

grep peace sample.txt

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

このあいまいさを回避-iするには、「文字列を入力したケースを忘れて、ファイル内の一致するすべてのパターンを検索する」というgrepコマンドを文字通り指示するオプションを使用するだけです。

構文:

grep -i [string] [filename]

grep -i peace sample.txt

出力

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
India Is a Beautiful Country Of Peace Loving People.

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

grepコマンドを使用した再帰検索

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

構文

grep -i -r [string] [file_path]

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

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

出力

./context_log.policy:// catalina.policy - Security Policy Permissions for Tomcat 7
./context_log.policy:// Note: If tomcat-juli.jar is in ${catalina.base} and not in ${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 Bootstrap JARs
./catalina.properties:# - Tomcat API JARs
./catalina.properties:# - Tomcat JARs
./catalina.properties:# - Common non-Tomcat JARs
./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:    
./tomcat-users.xml:  
./tomcat-users.xml:
./web.xml:  
./web.xml:  

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

grepコマンドのみで単語全体を検索

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

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

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

grep -i cart sample.txt

出力

Cartesian coordinates
importance of all the Cartesian coordinates.
use of a bullock cart is a common sight in the village for the agrarian chores
The cart went missing as the boy left it loose.

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

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

構文

grep -i -w [string] [filename]

grep -i -w cart sample.txt

出力

use of a bullock cart is a common sight in the village for the agrarian chores.
The cart went missing as the boy left it loose.

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

grepコマンドを使用した逆検索

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

構文

grep -i -v [string] [filename]

grep -i -v resource sample.txt

出力

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
india stands on three pillars of legislature, executive and judiciary.
India Is a Beautiful Country Of Peace Loving People.
cartesian coordinates
importance of all th cartesian coordinates.




use of a bullock cart is a common sight in the village for the agrarian chores.
This is the end of the sample file.

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

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

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

構文

grep -i -c [string] [filename]

grep -i -c india sample.txt

出力

[email protected]:~/workspace$ grep -i -c india sample.txt
4
[email protected]:~/workspace$

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

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

結論

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

Tags: #grep

2020年のUbuntu20.04の15のベストテーマ

2020年のUbuntu20.04の15のベストテーマ

多くの新しい更新されたテーマは、Ubuntu20.04の新しいGNOMEデスクトップにインストールする準備ができています。ここに2020年の最高のubuntuテーマのリストがあります

Ubuntuの「Alt-Tab」でWindowsのグループ化を解除する方法

Ubuntuの「Alt-Tab」でWindowsのグループ化を解除する方法

Ubuntuでは、デフォルトで、Windowsの代わりにアプリケーションを切り替えることができます。これを元に戻し、UbuntuのAlt-Tabでタブのグループ化を解除する方法は次のとおりです。

Ubuntu20.04に最適な10以上のGNOME拡張機能

Ubuntu20.04に最適な10以上のGNOME拡張機能

Gno-Menu、Extended Gesturesなどの人気のある拡張機能の多くは、Ubuntu20.04では機能しません。したがって、ここに最も効果的なGNOME拡張機能のリストがあります

7最高のUbuntuダイナミック壁紙アプリ

7最高のUbuntuダイナミック壁紙アプリ

アプリを使用してUbuntuのネイティブ壁紙をスライドショーすることはいつでもできますが、壁紙を動的にダウンロードして設定するためのアプリをいくつか紹介します。

Ubuntuのルートスーパーユーザーの違い

Ubuntuのルートスーパーユーザーの違い

Ubuntuのルートスーパーユーザーの違いは何ですか?さて、ここでカバーしてもらいます。

Ubuntu12.04用のTeamViewer8をインストールします

Ubuntu12.04用のTeamViewer8をインストールします

このビデオでは、完全なガイド付きのubuntu12.04システム用のTeamViewer8をインストールして使用します。しかし、これはウィンドウでも同じように機能します。

2020年のUbuntu用の最高の無料ビデオエディタ

2020年のUbuntu用の最高の無料ビデオエディタ

すべての綿毛を除いて、ここにあなたが素晴らしいビデオを作成するために使うことができるUbuntuのための最高の無料のビデオエディタのリストがあります。

Linuxを使い始めるための9つの基本コマンド

Linuxを使い始めるための9つの基本コマンド

Linuxのハウツーガイドでは、ターミナルで特定の操作を実行することを期待していることがよくありますが、これは最初は恐ろしいように思えます。しかし、心配する必要はありません。このLinuxコマンドのチートシートでは、ターミナルを開いていくつかの便利なコマンドを発行するプロセスについて説明します。

ArchLinuxでパッケージをインストールおよび削除する方法

ArchLinuxでパッケージをインストールおよび削除する方法

Arch Linuxにパッケージをインストールしたいのですが、方法がわかりませんか?多くの人は、DebianベースのディストリビューションからArchに最初に移行するときにこの問題に直面します。ただし、パッケージマネージャーを使用して、Archベースのシステムでパッケージを簡単に管理できます。

UbuntuからAndroidへの5つの最高のWi-Fiファイル転送アプリ

UbuntuからAndroidへの5つの最高のWi-Fiファイル転送アプリ

FTP、ピアツーピアファイル転送、Wi-Fi転送などのメカニズムを使用すると、AndroidとUbuntuの間でファイルを頻繁に共有する場合に時間を節約できます。