Пишу скрипт (zsh) для разбора логов по кодам ошибок и количество байт прошедшему по этому коду. Логи в *.gz, поэтому предварительно вывожу их на stdout через zcat и читаю построчно.
...
{for logfile in *.gz;zcat $logfile} | while read line;do
error_code=$(echo $line | cut -d'|' -f41)
volume=$(echo $line | cut -d'|' -f67)
...
done
скрипт простой и короткий, но работает не сказать чтоб очень быстро, а логов несколько гигабайт каждый день. Грешу на способ вычленения нужных полей и тройной вывод каждой строки.
Если ли варианты оптимизации?