У меня есть следующий скрипт, который анализирует некоторые |пары полей / значений с разделителями.Пример данных выглядит следующим образом: | Apple = 32.23 | Banana = 1232.12 | Grape = 12312 | Pear = 231 | Grape = 1231 |
Я просто хочу подсчитать, сколько раз имена полей A, B или C появляются вжурнальный файл.Список полей должен быть динамическим.Файлы журнала имеют «большой» размер около 500 мегабайт каждый, поэтому для сортировки каждого файла требуется некоторое время.Есть ли более быстрый способ подсчета, как только я выполню вырезку и получу файл с одним полем на строку?
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
Проблема в том, что мои реальные данные занимают слишком много времени.Я думаю, что это было бы быстрее> вывод вырезки в файл, но не уверен, что самый быстрый способ подсчета уникальных записей в «большом» текстовом файле