Вывод первой команды awk выглядит примерно так:
[11/Jul/2011:23:59:59 200
С этим форматом вы можете значительно упростить команду grep, используя, например:
fgrep ' 2'
То есть, вы grep для пространства, из которого awk добавит только один в качестве разделителя выходного поля, и начало результирующего кода. Используя fgrep вместо grep, вы говорите grep, что вы не запрашиваете регулярное выражение, а ищете фиксированную строку, и это делает ее намного быстрее.
Кроме того, вы можете увеличить скорость, комбинируя последние команды awk. От:
awk -F \"[\" '{print $2}' | awk '{print $1}'
Кому:
awk -F '[[ ]' '{print $2}'
Этот скрипт также использует оба ядра моего компьютера, хотя второе не используется на 100%. Если вы хотите использовать все свои ядра, вам придется разделить данные для анализа на четыре части, обработать их параллельно и затем объединить результаты.