grepでマッチしたファイル名一覧を取り出す

vimで,「特定の文字列を含むファイルだけを開く」といったことをやりたいとする.
実際,例えば関数getHoge()を呼び出している関数を含むファイルだけをvimで編集したいというようなことがある.
まず、grepして、探したい文字列を検索して、該当するファイルを開けばいい.
ここで使うのが grep の -l オプション.普通 grep はマッチした部分と、そのファイル名を画面に出力するけど、この -l オプションをつけると、マッチした部分は表示されず、ファイル名の一覧が表示される。これを xarg を使って vim 等に渡せばいい。
結果的に

grep -l "getHoge()" *.cpp | xarg vim

でOK.

コメントする