hypermkt blog

grepコマンドの各オプションの使い方を調査した

August 27, 2014

書式

grep [オプション] [パターン] [ファイル名]

オプション

オプション

意味

-A NUM, —after-context NUM

NUMで指定した行だけマッチした行の後に表示する

-B NUM, —before-context NUM

NUMで指定した行だけマッチした行の前に表示する

-C, —contest

NUMで指定した行だけマッチした行の前後に表示する

-c, —count

マッチした行数を表示する

-e PATTERN, —regexp=PATTERN

パターンを指定

-E PATTERN, —extended-regexp=PATTERN

拡張正規表現として扱う。egrepと同じ。

-f FILE, —file=FILE

パターンをファイルから一行ずつ読み込む。空ファイルの場合はパターンを含まないので何にもマッチしない。

-G, —basic-regexp

通常のgrepとして動作。基本正規表現として扱う。

-H

マッチした行の頭にファイル名を表示する

-h, —no-filename

ファイル名を表示しない。

-i

パターン、入力の両方で大文字小文字を区別しない case-sensitive=大文字小文字を区別するという意味

-o, —only-matching

マッチした箇所のみ表示する

-q, —quiet, —silent

標準出力を抑える

-v, —invert-match

結果を反転してマッチしなかった行のみ表示。invert=逆にする、反対にする

-w, —word-regexp

キーワードにマッチする行のみ表示する

-Z

zgrepとして動作

備考

  • 正規表現には基本正規表現と拡張正規表現の2種類がある。オプションで正規表現を実行する際はどちらで評価されるのか注意する事
  • refs : sed/grepコマンドの正規表現

-B

$ grep -B 2 bird search.txt dog cat bird

-C

$ grep -C 2 bird search.txt dog cat bird elephant pig

-H

$ grep -H a *.txt animals.txt:cat animals.txt:elephant animals.txt:zebra fruits.txt:apple fruits.txt:pineapple fruits.txt:strawberry

-o

$ grep a animals.txt cat elephant zebra $ grep -o a animals.txt a a a

-v

$ grep -v a animals.txt dog bird pig horse


都内で働くWebアプリケーションエンジニア。主にサーバーサイド。最近はRuby/Railsでコードを書くのが楽しい。