バンダーの天にはばたくレインボー日記 このページをアンテナに追加 RSSフィード Twitter

2012-02-10(金)

[][]CarbonEmacsでfindとgrepでのファイル検索

複数の拡張子を指定してサブディレクトリファイルgrepするコマンドの例。

2つの方法では、xargsを使うほうが速いらしい。

find . -type f -regex ".*[cpp|h]" -exec grep -nH -e "main" {} /dev/null \;
find . -type f -regex ".*[cpp|h]" -print0 | xargs -0 grep -nH -e "main"

↑これは拡張子の判定がダメだった。

↓これならOKだった。結局、正規表現で複数拡張子の指定はできなかった。

find . -type f \( -name "*.cpp" -o -name "*.h" \) -print0 | xargs -0 grep -nH -e "main"

.emacsに以下の定義をしておくと、grep-findで上ののコマンドが表示されるので、必要な箇所を書き換えて検索すれば良い。

(setq grep-find-command "find . -type f \\( -name \"*.cpp\" -o -name \"*.h\" \\) -print0 | xargs -0 grep -nH -e \"main\"" )

一つ下のサブディレクトリだけなら、こういう方法でもできる。

grep -nH -e "main" *.cpp */*.cpp *.h */*.h

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/bander/20120210/p1
リンク元