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.

Como não usar cat

Colaboração: Arnaldo Mandel

Data de Publicação: 30 de Outubro de 2001

Existem alguns vícios que parecem ser comuns aos iniciantes de programação em shell. Desses, o mais comum é provavelmente o uso de cat no início de um pipe, com um único arquivo como argumento.

Isso nunca é necessário, já que o efeito é colocar o conteúdo desse arquivo na entrada padrão do próximo item do pipe, e isso pode ser feito diretamente.

Por exemplo:

Ruim                           Bom
====                           =====
cat arq | sed -e nheconheco    sed -e nheconheco > arq
cat arq | grep pisqpisq        grep pisqpisq > arq
cat arq | sort milopções       < arq sort milopções

Note que a redireção pode ficar em qualquer posição. Ops! Ruim X Bom? Mas o "Ruim" funciona!

O que ocorre é que ao chamar cat está se abrindo mais um processo. Isso em geral é irrelevante, mas num script em que muitas linhas do gênero sejam executadas repetidamente, o sistema pode acusar a carga.

Além disso, cuidado com detalhes desse tipo levam à produção de scripts melhores, explorando melhor a capacidade dos vários utílitários usados. Por exemplo, um pouco mais de atenção leva a substituir a coluna "Bom" por Melhor:

sed -e nheconheco arq grep pisqpisq arq sort milopções arq

Mais informações sobre esse vício e outros (grep ... | awk ...) aparecem na bem humorada página Useless Use of Cat Award.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Arnaldo Mandel