Geralmente eu diria que grep
é o mais rápido, sed
é o mais lento. Claro que isso depende do que você está fazendo exatamente. Eu acho awk
muito mais rápido que sed
.
Você pode acelerar o grep se não precisar de expressões regulares reais, mas apenas strings fixas simples (opção -F).
Se você quiser usar grep, sed, awk juntos em pipes, então eu colocaria o comando grep primeiro, se possível.
Por exemplo, isto:
grep -F "foo" file | sed -n 's/foo/bar/p'
geralmente é mais rápido que isso:
sed -n 's/foo/bar/p' file
Embora o grep
na primeira linha pareça desnecessário.
BTW, você pode acelerar esses comandos usando LC_ALL=C
se estiver lidando com arquivos de texto ASCII simples.
Note que toda a minha experiência é baseada nos comandos do gnu. Você também pode tentar implementações diferentes e comparar a velocidade.