主要オプション
`grep`コマンドのさまざまなオプションを組み合わせて、目的のテキストを検索してみましょう。
1. 基本検索
2. 検索オプション
3. 出力オプション
4. 再帰検索
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`grep` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
正規表現の基礎
`grep`コマンドは、強力なテキスト検索のために正規表現(Regular Expressions)をサポートしています。正規表現を使用すると、複雑なパターンも簡単に検索できます。
文字 | 説明 | 例 |
---|---|---|
. | すべての単一文字(改行を除く) | `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'メッセージを検索します。