使い方
参考:
Grep コマンドの詳細まとめました | エンジニアの入り口
grep / egrep / fgrep コマンドのすべて 具体例編 – Qiita
基本
参考:
正規表現を利用したテキストのパターン抽出 | bioinformatics
Linux で使う正規表現についてまとめました | エンジニアの入り口
マッチした部分のみ出力する
参考:
Can Grep show only words that match search pattern? – Stack Overflow
How to display part of matched pattern in Grep? – Stack Overflow
Can Grep output only specified groupings that match? – Unix & Linux Stack Exchange
キーワードを含む/含まない
参考:
Bash で正規表現 ある文字列を含んである文字列を含まない – Qiita
空白文字
拡張正規表現で \s
は空白文字を表す。
$ echo " hello" | grep -E "\s*hello"
参考:
エスケープ
参考:
Grep でドル記号やバックスラッシュを検索する | rcmdnk’s blog
前後の行を表示する
-1
:前後1行ずつ表示する/合致毎に3行表示される-2
:前後2行ずつ表示する/合致毎に5行表示される-C n
:前後n
行ずつ表示する/合致毎に2n+1
行表示される-B n
:合致行の前n
行を追加で表示する-A n
:合致行の後ろn
行を追加で表示する
参考:
前後の行も表示させる方法 | server-memo.net
パイプ/フィルタとして使う
参考:
パイプ「|」を使って複数のコマンドを組み合わせる | Webkaru
フィルタとして Grep を使う | Solaris ユーザーズガイド 上級編
ハイライト
検索結果の出力においてキーワードをハイライト表示するには、--color
オプションに auto
または always
を指定する。
$ echo "hello" | grep --color=auto "e"
参考:
ファイル/標準出力の特定のキーワードだけハイライト表示させる | 俺的備忘録
Grep で検索した行以外を消さずに色付けする方法 – Qiita
コマンド出力を Grep でキーワードハイライトする | sgryjp.log
ハイフンを検索する
コマンドラインで引数を指定する際に、--
以降はオプションとして認識されない。
$ grep -- "---" file.txt
参考:
How to grep ‘—‘ in Linux? grep: unrecognized option ‘—‘ – Stack Overflow
固定のキーワードを高速に検索する (fgrep)
固定のキーワードを検索する場合に fgrep
コマンドを使うと、通常の grep
コマンドを使うより高速に検索できる。
参考:
grep / egrep と fgrep の違い | 技術メモ帳
fgrep コマンド | IBM Knowledge Center
キーワードの出現回数を数える
参考:
Grep コマンドでヒットした数をカウントしました – Qiita
Count total number of occurrences using Grep – Unix & Linux Stack Exchange
Counting occurrences of word in text file – Unix & Linux Stack Exchange
Grep to count number of occurrences – Unix & Linux Stack Exchange
count number of matches per line – Super User
Perl 互換正規表現を使う (PCRE)
GNU Grep では、-P
オプションを指定することで Perl 互換正規表現 (PCRE) を使用することができる。
$ echo "Hello, World" | grep -oP '\w+'
参考:
pcregrep と GNU Grep の -P | 隙あらば寝る
GNU Grep のススメ/Perl 互換オプション | 涙とともに、夜な夜なパンをかじった。
Using modifiers of Perl-compatible Regex (PCRE) in Grep – Ask Ubuntu