正規表現を使用してファイルを検索するスクリプトがあります。コードは次のとおりです。
find $dir | grep "$regex"
スクリプトの実行が少し遅すぎるため、最適化したいと考えています。検索の実行には時間がかかるため、パフォーマンスを向上させたいと考えています。私はこの試みを試みました:
find $dir -regex ".*${regex}.*"
正規表現を解析するための余分なプロセスが作成されないため、結果がわずかに高速になることを期待していました。
しかし、結果は異なり、驚いたことに、コマンド「find | grep」は「find -regex」よりも高速です(ただし、予想どおり、システム時間はかかります)
私はこの動作の時間を測定しました:
検索 | grep の結果
real 0m12.467s
user 0m2.568s
sys 0m7.260s
検索 -正規表現の結果
real 0m16.778s
user 0m6.772s
sys 0m6.380s
find -regex ソリューションが遅い理由がわかりましたか?