私は次のスクリプトをいくつか解析しています。区切られたフィールドと値のペア。サンプルデータは次のようになります |アップル= 32.23 |バナナ= 1232.12 |ブドウ= 12312 |ブドウ= 231 |ブドウ= 1231 |メソッドのソートとカウントが速くなり、catファイル|並べ替え| uniq -c
ログファイルにA、B、またはCのフィールド名が何回表示されるかを調べるだけです。フィールドリストは動的である必要があります。ログファイルはそれぞれ約500メガバイトの大きさなので、各ファイルをソートするのに時間がかかります。一度カットを行い、1行に1つのフィールドを持つファイルを取得すると、カウントを行うより速い方法がありますか?
cat /bb/logs/$dir/$file.txt | tr -s "|" "\n" | cut -d "=" -f 1 | sort | uniq -c > /data/logs/$dir/$file.txt.count
私は、この部分が高速で実行されていることを知っています。私は、それがこの種のものにぶつかっていることを確かに見ることができます。
cat /bb/logs/$dir/$file.txt | tr -s "|" "\n" | cut -d "=" -f 1
私はサンプル出力は以下の通りですカットを実行した後は、もちろんファイルははるかに長く、ソート後
Apple
Banana
Grape
Pear
Grape
あり、問題がある、私は
1 Apple
1 Banana
1 Pear
2 Grape
を取得数えます私の実際のデータの並べ替えには時間がかかりすぎます。ファイルへのカットの出力が速いと思いますが、「大きな」テキストファイル内の一意のエントリを数える最も速い方法はわかりません。
ポストは、いくつかのサンプルデータとビットで何かを掲示するウル希望入出力/ P – Teja
は大丈夫 – personalt
...それは大丈夫shud '猫のファイルよりも速く – Teja