etsavの日記: grepsrc.sh
日記 by
etsav
#! /bin/sh
# いろいろわけあって拡張子が統一されてないプロジェクトのやたらと深いディ
# レクトリ階層を再帰的にたどって C/C++ のヘッダ/ソースファイルの中身を検
# 索するのに find だけだともう見辛くてしょうがないので sed でエスケープシー
# ケンスをてきとに埋め込むやっつけスクリプトなので他の環境で動くかどうか
# なんてあたしの知ったこっちゃないのでありました。
echo
find . -type f \
\( \
-name \*.h -o -name \*.hh -o -name \*.hpp -o \
-name \*.H -o -name \*.hxx -o -name \*.h++ -o \
-name \*.c -o -name \*.cc -o -name \*.cpp -o \
-name \*.C -o -name \*.cxx -o -name \*.c++ \
\) \
-exec grep -n -C3 $1 {} \; -print -exec echo \; \
| sed "/^[0-9][0-9]*:/{s/$1/\x1b[1m&\x1b[0m/g}
/^[^0-9]/{s/^.*$/\x1b[31m&\x1b[0m/}"
grepsrc.sh More ログイン