主要オプション
`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'メッセージを検索します。