Linux grep コマンド学習ドキュメント
grep
コマンドは、テキストデータを検索し、特定のパターンを抽出するための強力なツールです。このドキュメントでは、基本的な使い方から高度なオプションまでを解説します。
基本構文
grep [オプション] パターン ファイル名
- パターン: 検索する文字列または正規表現。
- ファイル名: 検索対象のファイル。
よく使うオプション
オプション | 説明 |
---|---|
-i |
大文字小文字を区別しないで検索します。 |
-v |
パターンに一致しない行を表示します。 |
-r / -R
|
ディレクトリを再帰的に検索します。 |
-n |
一致した行番号を表示します。 |
-c |
一致した行数を表示します。 |
-l |
パターンが含まれるファイル名を表示します。 |
--color |
一致した部分を色付きで表示します。 |
使用例
1. 単純な文字列検索
grep "hello" example.txt
example.txt
から"hello"を含む行を表示します。
2. 大文字小文字を無視した検索
grep -i "error" logs.txt
logs.txt
から"error"または"ERROR"などを検索します。
3. 否定検索
grep -v "debug" output.log
output.log
から"debug"を含まない行を表示します。
4. 複数ファイルの検索
grep "function" *.c
現在のディレクトリ内のすべての.c
ファイルを検索します。
5. 再帰的検索
grep -r "TODO" src/
src/
ディレクトリ内のすべてのファイルから"TODO"を検索します。
正規表現の利用
grep
は正規表現を使用して柔軟な検索が可能です。
メタ文字一覧
メタ文字 | 説明 |
---|---|
^ |
行の先頭に一致します。 |
$ |
行の末尾に一致します。 |
. |
任意の1文字に一致します。 |
* |
直前の文字が0回以上繰り返される部分に一致します。 |
[] |
文字クラスを指定します。例えば[a-z] は小文字のaからzに一致します。 |
\ |
メタ文字をエスケープします。 |
正規表現の例
行の先頭に一致
grep "^start" file.txt
行の先頭が"start"で始まる行を検索します。
行の末尾に一致
grep "end$" file.txt
行の末尾が"end"で終わる行を検索します。
任意の文字を検索
grep "h.t" file.txt
"h"と"t"の間に任意の1文字がある行を検索します(例: "hat", "hot")。
応用例
出力結果を別のコマンドに渡す
grep "error" logs.txt | sort | uniq
logs.txt
から"error"を検索し、結果をソートして重複を除去します。
ファイルに結果を保存
grep "pattern" file.txt > result.txt
検索結果をresult.txt
に保存します。
まとめ
grep
は日常的な作業から高度なテキスト処理まで幅広く使用できます。正規表現や他のツールと組み合わせることでさらに強力なツールとなります。まずは基本的な使い方をマスターし、必要に応じてオプションや正規表現を活用してください。