Grepコマンドチュートリアル–再帰検索を使用してLinuxおよびUnixでファイルを検索する方法

grepGlobally Search For Regular Expression andPrintoutの略です。これは、UNIXおよびLinuxシステムで、ファイルまたはファイルのグループ内の指定されたパターンを検索するために使用されるコマンドラインツールです。

grepファイルに対してさまざまな検索関連のアクションを実行できるようにする多くのオプションが付属しています。この記事ではgrep、使用可能なオプションを使用する方法と、ファイルを検索するための基本的な正規表現について説明します。

使い方 grep

オプションを渡さずgrepに、ファイルまたはファイルのグループ内のパターンを検索するために使用できます。構文は次のとおりです。

grep ''  

テキストが複数の単語である場合は、テキスト一重引用符または二重引用符で囲む必要があることに注意してください

ワイルドカード(*)を使用して、ディレクトリ内のすべてのファイルを選択することもできます。

この結果、ファイル内にパターンが(見つかった行ごとに)出現します。一致するものがない場合、出力は端末に出力されません。

たとえば、次のファイル(grep.txtと呼ばれる)があるとします。

Hello, how are you I am grep Nice to meet you 

次のgrepコマンドは、単語「あなた」のすべての出現を検索します。

grep you grep.txt 

この結果は次のとおりです。

Hello, how are you Nice to meet you 

you 検索対象を簡単に識別できるように、他のテキストとは異なる色にすることが期待されています。

しかしgrep、検索操作中により多くのことを達成するのに役立つより多くのオプションが付属しています。上記の例に適用しながら、そのうちの9つを見てみましょう。

で使用されるオプション grep

1。-n(-line-number)-行番号を一覧表示します

これにより、テキストの一致が行番号とともに出力されます。上記の結果を見ると、行番号はなく、一致するだけであることがわかります。

grep you grep.txt -n 

結果:

1: Hello, how are you 3: Nice to meet you 

2。-c(-count)-一致する行数を出力します

grep you grep.txt -c 

結果:

2 

1行目に別の「you」があっ場合-cでも、オプションは2を出力することに注意してください。これは、一致の数ではなく、一致が表示される行の数に関係しているためです。

3。-v(-invert-match)-指定されたパターンに一致しない行を出力します

grep you grep.txt -v -n 

結果:

2. I am grep 

オプション-n?も使用したことに注意してください。はい、1つのコマンドで複数のオプションを適用できます。

4。-i(-ignore-case)-大文字と小文字を区別しない場合に使用

# command 1 grep You grep.txt # command 2 grep YoU grep.txt -i 

結果:

# result 1 # no result # result 2 Hello, how are you Nice to meet you 

5。-l(-files-with-matches)-パターンに一致するファイル名を出力します

# command 1 grep you grep.txt -l # command 2 grep You grep.txt -i -l 

結果:

# result 1 grep.txt # result 2 # all files in the current directory that matches # the text 'You' case insensitively 
#### 6. `-w` (--word-regexp) - print matches of the whole word 

デフォルトgrepでは、指定されたパターンを含む文字列に一致します。これは、「yo」があなたの中にあるためgrep yo grep.txtと同じ結果を出力することを意味grep yo grep.txtします。同様に、「ou」。

オプション-wを使用grepすると、一致が指定されたものとまったく同じパターンになるようにします。例:

grep yo grep.txt -w 

結果:

検索結果はありません!

7。-o(-only-matching)-一致したパターンのみを出力します

デフォルトでgrepは、一致するパターンが見つかった行を印刷します。オプションを使用する-oと、一致したパターンのみが1行ずつ印刷されます。例:

grep yo grep.txt -o 

結果:

yo 

8。-A-B-after -context)および(--before-context)-一致したパターンの前後の行を(それぞれ)出力します

grep grep grep.txt -A 1 -B 1 

結果:

Hello, how are you I am grep Nice to meet you 

この一致したパターンは2行目にあります。これは-A 1、一致した行の1行後を-B 1意味し、一致した行の1行前を意味します。

+に-C等しい(--context)オプションもあります。に渡された値は、およびに使用されます。-A-B-C-A-B

9。-R(-dereference-recursive)-再帰検索

デフォルトでgrepは、ディレクトリを検索できません。これを実行しようとすると、エラーが発生します(「ディレクトリです」)。オプション-Rを使用すると、ディレクトリおよびサブディレクトリ内のファイルの検索が可能になります。例:

grep you . 

結果:

# 'you' matches in a folders # and files starting from the # current directory 

パターンの正規表現

grepパターンを指定するための基本的な正規表現も使用できます。それらの2つは次のとおりです。

1.-^pattern行の開始

このパターンはgrep、行が^。の後に指定された文字列で始まる文字列と一致することを意味します。例:

grep ^I grep.txt -n 

結果:

2: I 

2.-pattern$行の終わり

とは対照的に^$行が$。の前の文字列で終わる場合に一致するパターンを指定します。例:

grep you$ grep.txt 

結果:

1: Hello, how are you 3: Nice to meet you 

要約

grepターミナル内のファイルを検索するための強力なツールです。使い方を理解することで、端末からファイルを簡単に見つけることができます。

このツールには、さらに多くのオプションが付属しています。あなたはで見つけることができますman grep