grep テキストフィルタツール#
説明:
grep
(global search regular expression(RE)and print out the line、グローバル検索正規表現(RE)および行を出力する)は、強力なテキスト検索ツールであり、正規表現を使用してテキストを検索し、一致する行を出力することができます。特定の文字列を検索してフィルタリングするために使用されます。正規表現を使用でき、複数のコマンドと組み合わせて使用することができ、非常に柔軟です。
構文:
grep [OPTION...] PATTERNS [FILE...]
grep [OPTION...] -e PATTERNS ... [FILE...]
grep [OPTION...] -f PATTERN_FILE ... [FILE...]
grep コマンドオプション#
オプション | 機能 |
---|---|
-c | ファイル内の一致する行数をカウントする |
-i | パターンの大文字と小文字を無視する |
-n | すべての一致する行をリストし、行番号を表示する |
-v | パターンに一致しない行をリストし、反転する |
-e | 複数のオプション間の論理和 |
-o | パターンに一致した内容のみを表示する |
-l | 一致する内容を含むファイル名をリストする |
-w | 完全な単語に一致する |
-q | サイレントモードで、何も出力しない |
-r | 再帰的に検索する |
-f | ファイルの内容に基づいて複数のパターンを一致させる(ファイルに一致する内容を行ごとに記述する) |
-A | after、後ろの n 行(一致した行と後ろの n 行) |
-B | before、前の n 行(一致した行と前の n 行) |
-C | context、前後の各 n 行(一致した行と前後の各 n 行) |
-E | 拡張正規表現を使用し、egrep と同等 |
-F | fgrep と同等で、正規表現をサポートしない |
-P | Perl 正規表現を使用する |
ヘルプコマンドを使用してすべてのオプションを表示できます(grep --help または man grep)
grep
は「標準正規表現」をマッチング基準として使用しますegrep
は拡張 grep コマンドで、grep -E
と同等で、拡張正規表現をマッチング基準として使用しますfgrep
は grep コマンドの簡略版で、正規表現をサポートしませんが、検索速度が速く、システムリソースの使用率が低いです
例#
# 空行の行数をカウントする
[root@localhost ~]# grep -c '^$' test.txt
# 大文字と小文字を区別せずに文字hを含む行
[root@localhost ~]# grep -i 'h' test.txt
# すべての空行をリストし、行番号を表示する
[root@localhost ~]# grep -n '^$' test.txt
# 空でないすべての行をリストする
[root@localhost ~]# grep -v '^$' test.txt
# 行の先頭がSで始まる行と空行をリストする
[root@localhost ~]# grep -e '^$' -e '^S' test.txt
# 数字をフィルタリングし、一致した内容のみを表示する
[root@localhost ~]# grep -o '[0-9]' test.txt
# aを含む内容のファイル名をリストする
[root@localhost ~]# grep -l 'a' demo.txt test.txt pwd.txt
# 単語「you」に一致する行
[root@localhost ~]# grep -w 'you' test.txt
# ファイル内の内容に基づいて一致する
[root@localhost ~]# grep -f file test.txt
# 「can」を含む行とその後ろの3行をリストする
[root@localhost ~]# grep -A3 'can' test.txt
# 「can」を含む行とその前の3行をリストする
[root@localhost ~]# grep -B3 'can' test.txt
# 「can」を含む行とその前後の各3行をリストする
[root@localhost ~]# grep -C3 'can' test.txt
# d文字を少なくとも2回繰り返す
[root@localhost ~]# grep -E 'd{2,}' test.txt