私はgrep -i
より頻繁に使用していますが、egrep
各文字の大文字または小文字と一致する同等のものよりも遅いことがわかりました:
$ time grep -iq "thats" testfile
real 0m0.041s
user 0m0.038s
sys 0m0.003s
$ time egrep -q "[tT][hH][aA][tT][sS]" testfile
real 0m0.010s
user 0m0.003s
sys 0m0.006s
しgrep -i
ない追加のテストをegrep
行いますか?
テストの前にファイルをgrepしたので、キャッシュされます。逆の順序で行われた場合、ほぼ同じ時間。
—
ティルダロー
これはロケールに依存する場合があります。一部のロケールでは、大文字と小文字を区別しない複雑な計算が必要になります。GNU grepは、Unicodeを含む多くの状況で特に遅くなります。どのロケール設定を使用しましたか?どのUnixバリアントの下で?テストファイルの内容は何ですか?
—
ジル 'SO-悪であるのをやめる'
@Gillesは見栄えがよく、各テストをここで100回繰り返す(全体のタイミングを調整する)ので、設定する
—
EightBitTony
egrep
よりも速くなり、両方ともほぼ同じになります。grep
LANG=C
@EightBitTony
—
カスペルド
user
時間(ディスク待機時間を含まない)を確認します。違いには桁違いがあります。
grep
反対の方法を試して、フライのディスクキャッシュの違いを測定していないことを確認してください。