読者です 読者をやめる 読者になる 読者になる

argius note

プログラミング関連

開発しています



gfloc = grep + floc

-

手前味噌なネタです。
Fruiによるlocateであるflocですが、どうにも遅い。標準入力がボトルネックになってるんじゃないかと想像してます。直接ファイルから読んでNewI/Oとかで処理すればそれなりになりそうです。
ここは発想を換えて、Fruiに渡す前にgrepで絞り込んでしまおう、と思いつきました。

# gfloc
file=/var/tmp/floc.log # Flocログ
alias frui="java -Dnet.argius.frui.path.separator=/ -jar frui.jar"
grep -i $1 < $file | frui --verbose -i $2 $3 $4 $5 $6 $7 $8 $9

最初のパラメータだけはgrepに渡し、それ以降はFruiに渡るようにしています。パラメータに"$*"を使っていないのは、使うとしたらどうやるか分からなかったのでこのようになってます。
grepで絞り込めればかなり早いです。それはそうでしょう。さらにお好みで、fgrep -iオプションなしとかもよろしいかと。