A chave para o desempenho do shell é minimizar o número de chamadas caras do sistema, em particular fork() e exec() .
Não use grep ou sed dentro de um loop de shell. Nunca use um pipeline com ambos; na maioria dos casos, pode ser reduzido para apenas sed ou awk .
Se ficar complicado, use uma linguagem que analise expressões regulares, e faça loops, como awk ou perl .
Por outro lado, se você conseguir com o processamento de texto simples oferecido pelo shell, você pode extrair muito desempenho dele.
Dito isto, o at & ksh93 sempre foi otimizado para velocidade, enquanto o bash e o zsh têm muito mais recursos.