> сравните результаты Забыли сперва всё cat'нуть куда-нить в /dev/null, чтоб не первая команда из замеряемых отвечала за кэш.
cat /usr/include/{*.h,*/*.h} > /dev/null 0.01s user 0.06s system 5% cpu 1.274 total
> time grep -h "#include.*stdio" /usr/include/{*.h,*/*.h}
0.01s user 0.03s system 78% cpu 0.051 total
> time awk '/#include.*stdio/ {print}' /usr/include/{*.h,*/*.h}
0.08s user 0.02s system 94% cpu 0.110 total
> time sed -n '/#include.*stdio/p' /usr/include/{*.h,*/*.h}
0.13s user 0.03s system 97% cpu 0.169 total
> time perl -e '/#include.*stdio/ && print while <>' /usr/include/{*.h,*/*.h}
0.09s user 0.03s system 91% cpu 0.131 total
> перл только грепу
...с awk...
> и проигрывает, и то - не фатально.
Угу, в два с половиной раза по ходикам на стенке при предложенных Вами условиях на ноуте под руками.
Хотя осмысленно было бы сделать серию забегов на различных массивах данных, чтобы разделить время инициализации и время собственно работы.
> и это с учетом того, что в одиночку греп - пустое место.
Для данной задачи греп как раз минимально непустое место, бишь оптимальное. При всём моём уважении к перлу.