一致する行を抽出する Mac の grep コマンド:
オプション、正規表現など

informatics/commands_mac/grep_mac

このページの最終更新日: 2019/04/03

  1. 概要: grep の使い方
    • オプション一覧
    • 前後の行に関するオプション
    • 正規表現一覧

広告

概要: grep の使い方

とりあえずは Mac と Unix、Linux を区別せずに記載する。実際の操作は、いくつかのバージョンの Mac OS X で行っている。

grep は、指定した規則に従ってファイルに対してパターンマッチングを行い、マッチする行を抽出する関数である (1)。


$ grep (option) ["text"] [filename]


のように使う。


オプション一覧

output のオプションはないので、結果をファイルに保存するときは > results.out のようにする。

-b 各行の前に、ファイルの先頭からバイト単位のオフセット数を表示する。
-c

パターンに一致した行の数のみを出力する。v option との組み合わせで、-cv とすると一致しなかった行の数を出力できる。

-d

検索対象として、フォルダまたはフォルダを含む複数の対象を指定した場合、action に指定する値によって以下の動作を行う。対象にフォルダがない場合、このオプションは意味をもたない (3)。

  • read: フォルダを普通のファイルのように扱って処理する。
  • skip: フォルダを grep の対象外とする
  • recurse: フォルダ以下の全てのファイルを読み込む。
-i 大文字と小文字を区別しない。
-l パターンに一致した行を含むファイル名だけを出力する。
-n パターンに一致した行のファイル内での行番号を表示する。
-o

Only-matching. 指定された正規表現のマッチする部分を、改行区切りで出力する。

-q 検索結果にマッチした行を表示しないオプション。
-r 特定のフォルダ以下を再帰的に検索する。
-v パターンに一致しない行を表示する。
-x 行全体を検索対象にする。

前後の行に関するオプション

-num
(数字を指定)

マッチした行から指定した行数 (前後) を同時に検索結果として表示する。

-A num
(数字を指定)

マッチした行から指定した行数 (後ろ) を同時に検索結果として表示する。

-B num
(数字を指定)

マッチした行から指定した行数 (前) を同時に検索結果として表示する。

-C

マッチした行の前後 2 行を検索結果として表示する。



正規表現一覧

行の先頭を検索
^abc

^ は行の先頭を示す。grep 'abc' file1 だと file1 から文字列 abc を含む行が検索されるが、grep '^abc' file2 だと abc から始まる行が選択される。

and 検索

| でもう一度 grep に引き渡せばよい。つまり grep "abc" filename | grep "def" で、abc を含み、かつ def を含む行のみが抽出される。

or 検索

-e オプションを使う。grep -e "abc" -e "def" filename になる。




広告

コメント欄

フォーラムを作ったので、各ページにあるコメント欄のうち、コメントがついていないものは順次消していきます。今後はフォーラムをご利用下さい。管理人に直接質問したい場合は、下のバナーからブログへ移動してコメントをお願いします。


References

  1. grep ファイルからパターン検索. Link.
  2. grepを使った便利なコマンド一覧. Link.
  3. grep ファイル内の文字列を検索する. Link.
  4. Linux コマンド集 grep. Link.