0

非常に大きなデータセットを調べるためにGrepと協力します。かなりたくさんのログ。時々クレイジーな複雑な正規表現を使用して一度grepを実行するのが良いのか、それともいくつかの単純なgrep呼び出しを実行して、毎回ますます小さなデータセットを返すのが良いのかわかりません。私は正規表現が得意ではありませんが、必要な正規表現をログ検索ツールに保存できます。どの方法が最適かを探しています。

編集:

申し訳ありませんが、別のgrepの質問に対する前回の投稿にあった情報を追加するのを忘れました。ファイルはログです。私がテストしているものはこれまでのところ1.9GBであるため、小さい場合も大きい場合もあります。これはかなり適切なサイズだと思います。ログは小さいものから始まり、その後大きくなっていきます。ログはある時点でロートしますが、Apacheアクセスログのように実行していて、ホームページが読み込まれた頻度をgrepしたり、ページの読み込み時間をgrepしたりして、平均をとることができます。

4

2 に答える 2

1

grepデータセットは非常に大きいため、適切な正規表現を使用して1回だけ呼び出すことをお勧めします。これにより、過度のIOオーバーヘッドを回避できます。

于 2012-09-18T10:04:12.830 に答える
1

'crazy regex'を使用する代わりに、探しているもののハッシュを作成し、ハッシュ内の要素を探したら、大きなデータセットをループする方がよい場合があります。grepではなく、Perl、Python、またはRubyを使用します。

編集:

または、パターンのリストとそのパターンのリストのgrepを設定することもできます。これは、「クレイジー正規表現」を使用するよりも優れています。あなたは試すことができgrep -f patterns.txt datafile.txtます。

于 2012-09-18T10:13:43.963 に答える