Я считаю большой ошибкой то, что многие форматы журналов не разделяют столбцы с правильными уникальными разделителями полей. Не потому, что это лучше, а потому, что это основная предпосылка текстовых утилит Unix, которые работают с табличными данными. Вместо этого они, как правило, используют пробелы в качестве разделителей и заключают в кавычки поля, которые могут содержать пробелы.
Одним из наиболее практичных простых изменений, которые я сделал в анализе веб-журналов, было оставить формат журнала NCSA по умолчанию, созданный веб-сервером nginx, вместо этого использовать табуляцию в качестве разделителя полей.
Внезапно я смог использовать все примитивные текстовые утилиты Unix для быстрого поиска, но особенно awk! Печатать только строки, где поле user-agent содержит Googlebot:
awk 'BEGIN {FS="\t"} $7 ~ /Googlebot/ { print; }' < logfile
Найти количество запросов для каждого уникального запроса
awk 'BEGIN {FS="\t"} { print $4; }' < logfile | sort | uniq -c | sort -n
И, конечно, множество комбинаций для поиска конкретных посетителей.