ホーム > テキスト処理・検索 > grep

grepコマンド完全攻略

Linuxでテキストファイルや標準入力から特定のパターンを検索する`grep`コマンドのガイドです。このツールを使えば、目的のテキストを効率的に見つけてフィルタリングできます。

主要オプション

`grep`コマンドの様々なオプションを組み合わせて、目的のテキストを検索してみましょう。

1. 基本検索

2. 検索オプション

3. 出力オプション

4. 再帰検索

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`grep` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

正規表現の基礎

`grep`コマンドは、強力なテキスト検索のために正規表現(Regular Expressions)をサポートしています。正規表現を使用すると、複雑なパターンも簡単に見つけることができます。

よく使われる正規表現のメタ文字 正規表現で特別な意味を持つ文字です。
文字 説明
. 任意の1文字(改行を除く) `a.b` (acb, ambなど)
* 直前の文字が0回以上繰り返される `ab*c` (ac, abc, abbcなど)
+ 直前の文字が1回以上繰り返される `ab+c` (abc, abbcなど)
? 直前の文字が0回または1回出現する `ab?c` (ac, abc)
^ 行の先頭 `^start` (startで始まる行)
$ 行の末尾 `end$` (endで終わる行)
[abc] 括弧内のいずれかの文字 `[aeiou]` (母音)
[a-z] 範囲内のいずれかの文字 `[0-9]` (数字)
[^abc] 括弧内の文字を除く文字 `[^0-9]` (数字以外の文字)
\b 単語の境界 `\bword\b` (正確に'word'という単語)
| OR演算 (2つのパターンのいずれか) `cat|dog` ('cat'または'dog')

基本正規表現(BRE)と拡張正規表現(ERE)

`grep`はデフォルトでBREを使用します。`+`、`?`、`|`、`(`、`)`のような文字を特殊な意味で使用するには、前にバックスラッシュ(`\`)を付ける必要があります。`-E`オプションを使用するとEREモードになり、これらの文字をバックスラッシュなしで使用できます。`-P`オプションは、より強力なPCREを提供します。

使用例

`grep`コマンドの実用的な使用例を通して、テキスト検索を練習してみましょう。

ログファイルから'error'を検索

grep 'error' /var/log/syslog

`syslog`ファイルから'error'文字列を含むすべての行を出力します。

大文字小文字を区別せずに'failed'を検索し、行番号を出力

grep -in 'failed' /var/log/auth.log

大文字小文字を問わず'failed'を検索し、結果とともに行番号を表示します。

特定のパターンがない行のみを出力

grep -v '^#' /etc/nginx/nginx.conf

`nginx.conf`ファイルからコメント(#)で始まる行を除外して出力します。

サブディレクトリを含めて'.conf'ファイルから'server_name'を検索

grep -r 'server_name' *.conf

現在のディレクトリとすべてのサブディレクトリにある'.conf'拡張子のファイルから'server_name'パターンを再帰的に検索します。

特定のプロセスを検索 (psとパイプの組み合わせ)

ps aux | grep apache2

`ps aux`コマンドの結果から'apache2'関連プロセスのみをフィルタリングして確認します。

複数のファイルから'warning'または'critical'を検索

grep -E 'warning|critical' /var/log/syslog /var/log/kern.log

正規表現のOR(|)演算子を使用して、複数のログファイルから'warning'または'critical'メッセージを検索します。



同じカテゴリのコマンド