Linuxのテキスト検索コマンド。
ファイル名にも、ファイル内のテキストにも使用でき、汎用性が高い。おそらくLinuxで最も使用頻度の高いコマンド。
基本形
grep 検索したい文字列 -2
grepは基本的にcontain検索。文字列の一部を指定すればその文字列を含むファイルを表示する。
そのため、ワイルドカードの指定などは不要。逆に、ワイルドカードを指定しようとすると『*』自体が検索対象の文字列として認識されることがあるため注意すること。
オプション
- -r:再帰検索。配下のフォルダ内も全て検索対象とする
- -n:行番号を表示
- -l:ファイル名のみを表示する
- -i:大文字と小文字の区別を無視する。
- -w:完全一致
- -v:検索対象の文字列を含む結果を除外
- -2:検索対象文字列の前後2行も出力する。任意の数値で指定可能。
Appendix
検索対象のフォルダパス配下で、対象の文字列を含むファイルの一覧を表示する
grep 検索テキスト -rin 検索対象フォルダパス [--exclude-dir 除外フォルダ文字列]
ファイル内のテキストも検索対象となるため、ある程度的を絞って検索をかけないと、検索に膨大な時間がかかるため注意すること。
テキストの詳細は不要で、ファイル名のみ一覧でほしい場合はオプションを-rilにすると良い。
特定の文字列を含むディレクトリは検索対象から除外する。大量に存在するログフォルダは除外したい場合などに重宝する場合は以下のオプションを指定する。
--exclude-dir 除外フォルダ文字列
複数の文字列を除外対象としたい場合
--exclude-dir {str1, str2}
ワイルドカードを使用したい場合
--exclude-dir {str1, "*str2"}
空白、コメント行を除外する
cat fileName | grep -vE '^\s*$' | grep -vE '^\s*#
コメント