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 ítem 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
http://www.ling.helsinki.fi/users/reriksso/unix/award.html