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.
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.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários