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