grepとfindの便利な使い方

Linuxのコマンドで何かを探したりするときに使うコマンドがgrepfindです。今回はこの2つのコマンドの便利な使い方を簡単に紹介したいと思います。

grep
grepは、ある文字列を含むファイルを検出するときに使用します。
基本的な使い方は、こんな感じです。
grep (オプション) ‘検索したい文字列’ 探すファイル(ワイルドカード指定可能)
例えば、
grep ‘href’ *.html
と打つと、現在のフォルダ内にあるhrefという文字列を含む.htmlで終わるファイル一覧を表示してくれます。
grepコマンドには色々なオプションがあるので、よく使うものをいくつか紹介します。
-i アルファベットの大文字小文字を区別せずに検索する
-r 対象となるフォルダのサブフォルダも含めて再帰的に検索する
-n 対象の文字列が見つかった行番号も含めて表示する
-v 対象となる文字列が存在しない行について表示する
-A (数字) 対象となる文字列が見つかった行の後の指定した数字の行数分を表示する
-B (数字) 対象となる文字列が見つかった行の前の指定した数字の行数分を表示する
-(数字) 対象となる文字列が見つかった行の前後の指定した数字の行数分を表示する
-G 正規表現で検索する
例えば、grep -n -i -r ‘img’ *.html と打つと、Imgやimgなど、大文字小文字を区別せずに現在のフォルダおよびサブフォルダ内の.htmlで終わるファイルのImgやimgなどを含む行番号を表示してくれます。
より詳しくは、こちらを参考にしてください。

find
findはある条件を満たすファイルを探すコマンドです。
基本的な使い方は以下になります。
find (オプション)(探す場所) 対象となるファイルの条件
例えば、find app/Test.phpとタイプすると、appフォルダ内にTest.phpというファイルがあればそのファイルがあることを、なければ存在しないことを表示してくれます。
よく使うオプションをいくつか紹介します。
-name ワイルドカードを使用して、ある文字列をファイル名に含むものを全て表示します。
-type f ファイルのみを対象に検索します。
-type d フォルダのみを対象に検索します。
-exec 検索結果に対してコマンドを実行します。
応用例として、
find . -name ‘.DS_Store’ -type f -ls -delete
とタイプすると現在のフォルダおよびサブフォルダ内の.DS_Storeを全て削除してくれます。
詳しくはこちらを見てください。

grepとfindの2つのコマンドをうまく使ってどこに何があるかわからないことがないようにして、快適なLinuxライフを楽しみたいですね。