De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Existe um momento na trajetória de praticamente todo profissional que trabalha com Shell em que ele percebe uma verdade desconfortável: muitos scripts aparentemente “elegantes” são, na realidade, extremamente ineficientes. E grande parte dessa ineficiência vem de um hábito muito comum no universo Unix/Linux: encadear comandos externos para resolver problemas simples de manipulação de strings.
É fácil entender por que isso acontece. A filosofia Unix incentiva a composição de ferramentas pequenas usando pipes (|). Isso é poderoso e continua sendo uma das maiores virtudes do sistema. O problema começa quando esse modelo é utilizado sem critério em operações que poderiam ser feitas diretamente pelo próprio Shell, especialmente em loops ou scripts de processamento intensivo.
Veja um exemplo típico:
$ echo "$arquivo" | cut -d. -f1 | tr '[:lower:]' '[:upper:]'
À primeira vista, parece algo perfeitamente razoável. Mas existe um custo oculto enorme nessa abordagem.