grepコマンド最新版、"-i"で10倍の高速化

The fastest grep in the west (we hope).

GNU grepコマンドの最新版となる「grep 2.17」が公開された。GNU grepコマンドはテキストデータから指定したパターンに一致する行を取り出すといった用途に使われることが多いコマンドで、UNIX系のオペレーティングシステムで使われる頻度が高いコマンドのひとつ。grepコマンドには大文字と小文字を個別せずに一致させるという指定を意味する「-i」オプションを提供しているが、「grep 2.17」ではこの部分の処理を変更し、場合によっては10倍を超える高速化に成功したと説明がある。

現在ではLC_ALL=Cの状態ではなくマルチバイトロケールが設定された状態で使われることがほとんど。英語のみの使用であっても環境変数LANGにはCではなくen_US.UTF-8を指定するなどマルチバイトロケールが設定された状態で使われていることが多い。こうした状態で「-i」を使うと、マルチロケールに存在するごくわずかなケースを処理するために「-i」の処理そのものがかなり負荷の高い処理になる。

「grep 2.17」では処理そのものを変更するのではなく、「-i」オプションを使わない表記に変換できる場合には、そちらの表記に変換してから処理を実施することで高速化を実現している。たとえば「grep -i foobar」といった指定で実行されているのであれば「grep '[fF][oO][oO][bB][aA][rR]'」のように変換してから実行することで高速化を実現している。また、マルチバイト回りでほかにも処理の高速化などが実施されている。



転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

人気記事

一覧

イチオシ記事

新着記事

求人情報