grepメモ 2

grepの便利そうなオプションをメモっておきま〜す。

使うテキスト

こんなん。

% cat book.txt
プログラミング言語awk
Linux コマンドポケットリファレンス
Vi IMproved-Vim
Fedora Core6 ビギナーズバイブル
BINARY HACKS
ふつうのLinuxプログラミング

ふつうにgrep

% grep Linux book.txt       # ファイル名で指定
% cat book.txt | grep Linux # catでパイプ
% grep Linux < book.txt     # リダイレクト
% < book.txt | grep Linux   # zshのリダイレクト

こんな感じ。気分で変える。

行番号付きで再帰的にgrep

よく使う。

% grep Linux -rn .
./book.txt:2:Linux コマンドポケットリファレンス
./book.txt:6:ふつうのLinuxプログラミング

エディタから検索するときは使える。

マッチした所のみ

% grep -o Linux book.txt
Linux
Linux

大文字小文字を区別しない

% grep -i linux | book.txt
Linux コマンドポケットリファレンス
ふつうのLinuxプログラミング

マッチしなかった行

逆にぃ〜

% grep -v Linux book.txt
プログラミング言語awk
Vi IMproved-Vim
Fedora Core6 ビギナーズバイブル
BINARY HACKS

word

% grep -w Linux book.txt
Linux コマンドポケットリファレンス

どうやら、空白区切りらしい。

まとめ

-n 行番号付きで
-r 再帰的に
-H ファイル名付き
-i 大文字小文字を区別しない
-o マッチしたところのみ
-v マッチしなかった行

その他に・・・。

grep -E, egrep 拡張正規表現で
grep -P perl正規表現で
pgrep プロセスのgrep

追記

  • pgrepの記述に誤りがありました。直そうと思いつつ忘れてた(汗
  • 一般的な表記に直した。