Não é verdade, não. cut
é quase certamente a maneira mais rápida de fazer isso. Eu testei algumas alternativas em um arquivo de 157M e cut
é claramente o mais rápido (a propósito, você não precisa de cat
aqui):
$ time cut -f 2,6,8 -d ',' file > /dev/null
real 0m0.859s
user 0m0.803s
sys 0m0.053s
$ time awk -F, '{print $2,$6,$8}' file > /dev/null
real 0m5.442s
user 0m5.317s
sys 0m0.050s
$ time perl -F, -lane 'print "@F[1,5,7]"' file > /dev/null
real 0m6.065s
user 0m5.943s
sys 0m0.070s
Se você quiser acelerar as coisas, precisará alterar o que seu script está fazendo. Sugiro que você faça outra pergunta, inclua um exemplo do seu arquivo de entrada e explique qual é o seu objetivo final. Se você "precisar executar esta operação várias vezes", então certamente você está fazendo errado. Seu arquivo de entrada deve ser lido apenas uma vez, sempre que possível.