grep コマンド メモ

ファイル中のテキスト検出

モジュールで分割され,ディレクトリやファイル群がたくさんあるソースコードから,ファイル内に含まれるキーワードを検出したい時に.

grep -r "keyword" .

これでカレントフォルダ(.)の階層下全て(-r)検出できる.
keywordにスペースを含む場合は「"」でくくること.
grepはマッチする文字列の検出であり,「*」が不要なことに注意.
またfindコマンドと書く順番が異なる.
以下は個人的によく使うオプション.

-i:大文字小文字の区別なし
-l:該当ファイルのパス・ファイル名のみ表示
-n:パターンマッチした行数を表示
-r:サブディレクトリも含めて再帰的に検索
-I:バイナリファイルを無視(検索対象から除外)

また,パターンにマッチするファイルのリストを作成したいときは,ファイルのパスとファイル名さえ表示すれば良いので,

grep -rlI keyword . > filelist.dat

とか実行すればOK.

指定文字列を含まない検出

指定の文字列を含まないようなものを検出するには,-v オプションを使う.
直下ディレクトリの中でディレクトリを検出し,その中でさらに".git"という文字列を含んだものを除外するには

find . -type d | grep -v .git


正規表現で複数の文字列等を対象に検出

検出/除外の候補がいくつもあるときは,egrep または grep -E で正規表現を使う.
直下ディレクトリの中でディレクトリを検出し,その中でさらに".git"と"tmp"という文字列を含んだものを除外するには

find . -type d | grep -E -v ".git|tmp"



Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2022-04-08 (Fri) 03:10:58 (746d)