Grepは、さまざまなパラメータでファイルの内容を検索できる強力なUNIXコマンドです。トラブルシューティングやデバッグを行うときに特に役立ちます。
grepコマンドには、膨大な数のオプションとユースケースがあります。おそらく、それらすべてを必要としたり使用したりすることは決してないでしょう。ただし、ほとんどの場合、少数のgrepコマンドを使用することになります。
この記事では、最も一般的なgrepコマンドと簡単な例を示します。 Linuxハンドブックにはすでにgrepに関する詳細な記事がありますので、ここでは詳しく説明しません。ここでは、一般的なオプションとその説明だけを説明します。
すでにgrepコマンドに精通しているが、どのオプションが何を実行するかを忘れ続ける場合は便利です。
オプション | コマンド例 | 説明 |
---|---|---|
i | grep-iパターンファイル | 大文字と小文字を区別しない検索 |
A | grep-Anパターンファイル | 試合後にn行を表示 |
B | grep-Bnパターンファイル | 試合前にn行表示 |
C | grep-Cnパターンファイル | 試合の前後にn行を表示 |
v | grep-vパターンファイル | 一致しない行を表示する |
c | grep-cパターンファイル | 一致する行の数を数える |
l | grep-lパターンファイル | ファイル名のみを表示 |
w | grep-wパターンファイル | 正確な単語に一致 |
e | grep-eregexファイル | 正規表現パターンに一致 |
a | grep-パターンファイル | バイナリファイルを検索 |
r | grep -r pattern dir | ディレクトリを再帰的に検索 |
ダウンロードして印刷し、机の上に置いておくことができるPDFのチートシートを同梱しました。
Grepチートシートをダウンロード
Grepコマンドの簡単な例
ファイル内の特定のテキストまたはパターンを検索するには、次のようなgrepを使用する必要があることをすでにご存知でしょう。
grep search_pattern filename
grepコマンドの一般的な使用例をいくつか見てみましょう。
デフォルトでは、grepを使用した検索では大文字と小文字が区別されます。 -i
との大文字小文字の一致は無視できます オプション:
grep -i search_pattern filename
このように、grepは両方のHolmes
に一致する行を返します およびholmes
。
デフォルトでは、一致する行のみが表示されます。ただし、何かのトラブルシューティングを行う場合は、一致する行の前後に数行を表示すると便利です。
-A
を使用できます 一致する線の後に線を表示します。 AはAfterを表すことを忘れないでください。
以下のコマンドは、一致する行と、一致した後の5行を表示します。
grep -A 5 search_pattern filename
同様に、-B
を使用できます 一致する行の前に行を表示するオプション。 BはBeforeを表すことを忘れないでください。
以下のコマンドは、一致する行の前に一致する行とともに5行を表示します。
grep -B 5 search_pattern filename
私のお気に入りはオプション-C
一致する行の前後の行が表示されるためです。ここでのCはCircleの略です。
以下のコマンドは、一致する行の前に5行、一致する行と一致する行の後に5行を表示します。
grep -C 5 search_pattern filename
grepを使用して、指定されたパターンに一致しないすべての行を表示できます。この「反転マッチング」は、-v
で使用されます オプション:
grep -v search_pattern filename
-i
を組み合わせることができます および-v
オプション。
一致する行を表示する代わりに、-c
を使用してパターンに一致する行の数を取得できます。 オプション。これは小文字のcです。
grep -c search_pattern filename
-c
を組み合わせることができます および-v
指定されたパターンに一致しない行数を取得するオプション。もちろん、大文字と小文字を区別しないオプション-i
を使用できます。 。
一致する行の行番号を表示するには、-n
を使用できます オプション。
grep -n search_pattern filename
反転検索でも同じことができます。
検索するgrepに複数のファイルを提供できます。
grep search_pattern file1 file2
これは機能する可能性がありますが、より実用的な例は、特定のタイプのファイルを検索することです。たとえば、シェルスクリプト(.shで終わるファイル)のみの文字列を検索する場合は、次を使用できます。
grep search_pattern *.sh
grepオプション-r
を使用して、再帰検索を実行できます。 。現在のディレクトリとそのサブディレクトリ内のすべてのファイルで、指定されたパターンを検索します。
grep -r search_pattern directory_path
デフォルトでは、grepは一致する行を表示します。複数のファイルで検索を実行し、文字列が含まれているファイルのみを確認したい場合は、-l
を使用できます。 オプション。
grep -l search_pattern files_pattern
「ハンドブック」という単語が含まれているMarkdownファイルを確認したい場合は、次を使用できます。
grep -l handbook *.md
デフォルトでは、grepは指定された文字列を含むすべての行を表示します。あなたはいつもそれを望むとは限らないかもしれません。 「done」という単語を検索すると、「doner」または「abandoned」という単語を含む行も表示されます。
grepで完全な単語のみを検索するには、オプション-w
を使用できます。 :
grep -w search_string file
このように「done」という単語を検索すると、「done」を含む行のみが表示され、「doner」や「abandoned」は表示されません。
正規表現パターンを使用して、検索を強力に行うことができます。専用のオプション-e
があります これにより、正規表現パターンとオプション-E
を使用できます これにより、拡張正規表現パターンを使用できます。
grep -e regex_pattern file
同じgrep検索で複数のパターンを検索できます。いずれかのパターンを含む行を表示する場合は、OR演算子|
を使用できます。 。ただし、次の方法でこの特殊文字をエスケープする必要があります。
grep 'pattern1\|pattern' filename
OR演算子で複数のパターンを使用できます。
AND演算子には特定のオプションはありません。そのためにパイプリダイレクトでgrepを複数回使用できます。
Grepはデフォルトでバイナリファイルを無視します。 -a
を使用して、テキストファイルであるかのようにバイナリファイルで検索することができます。 オプション。
grep -a pattern binary_file
Grepコマンドのチートシートをダウンロード
このページをブックマークして、grepコマンドオプションと使用例をすばやく参照できます。
このgrepチートシートをPDF形式でダウンロードして印刷し、デスクに置いておくと、時間を無駄にすることなく一目で確認できます。
Grepコマンドのチートシートを無料でダウンロードPDF形式の説明付きの一般的なgrepコマンドをすぐにダウンロードします。grep-command-cheatsheet.pdf78KB
このページで見たい他の一般的なgrepのユースケースがあれば教えてください。