Mac の grep コマンド: 一致する行を抽出する

informatics/commands_mac/grep_mac
8-3-2017 updated

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


広告

概要: grep の使い方

Mac OS X と Unix の細かい違いはよくわからないので、とりあえず同じようなものとして記載する。実際の操作は、Mac OS X Mavericks で行っている。

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


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


のように使う。


オプション一覧

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

-b 各行の前に、ファイルの先頭からバイト単位のオフセット数を表示する。
-c パターンに一致した行の数のみを出力する。v option との組み合わせで、-cv とすると一致しなかった行の数を出力できる。
-d

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

  • read: フォルダを普通のファイルのように扱って処理する。
  • skip: フォルダを grep の対象外とする
  • recurse: フォルダ以下の全てのファイルを読み込む。

下の方に、「grep で html ファイルの中身を検索する」という使用例があります。

-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 から始まる行が選択される。



広告

コメント欄

一言コメントをどうぞ! (基本500字まで - 100字のページもあるかも)



このコメント欄は各ページにあるので、いつ管理人がコメントを見ることになるのか分かりません。内容について質問がある場合は、下のリンク先のフォームから質問頂ければ、早めに返信するようにします。


References

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