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.

Pipes

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 11 de Março de 1997

Um dos fatores que marcam a superioridade do Unix é o conceito de pipes. No Unix a filosofia original previa o desenvolvimento de módulos que desempenhassem uma tarefa e a desempenhassem bem.

Vejam só este exemplo:

  cat book*|deroff -w|dd conv=lcase|sort|uniq -c|sort -nr|more

Esta sequência de comandos irá realizar uma tarefa que iria requerer muitas linhas de código e muito planejamento. Vamos analisá-la:

  cat book*		- redireciona para a saída padrão o conteúdo de
  			  arquivos iniciados em book
  deroff -w		- transforma o resultado do comando cat em uma
  			  saída contendo uma palavra por linha
  dd conv=lcase		- converte para letras minúsculas o resultado do
  			  comando deroff
  sort			- ordena alfabeticamente o resultado
  uniq -c			- agrupa palavras iguais registrando o número de
  			  ocorrências
  sort -nr		- realiza uma nova ordenação, porém numérica,    
  			  colocando no topo da lista as palavras que ocorrem
  			  com mais freqüência
  more			- exibe uma tela de cada vez

Este exemplo ilustra de maneira clara como diversos comandos reunidos podem realizar tarefas complexas e em um tempo ínfimo, comparado com o esforço necessário para escrever um programa que desempenhe tarefa similar. Cada um dos comandos acima realiza um processamento sobre os dados que lhe são fornecidos, preparando-os para serem processados pelo próximo comando na seqüência.

Agora, para que serve isto? Por exemplo, um professor de literatura analisando a obra de Shakespeare, poderia querer determinar um padrão no uso de palavras. Outro exemplo, um professor de inglês instrumental poderia querer determinar as palavras mais utilizadas para elaborar as suas aulas de maneira mais eficiente. Poderia até mesmo determinar padrões de uso diferentes para cada área de especialização, como medicina, engenharia, administração, etc, etc. Ainda outro exemplo, um administrador de sistemas pode desejar analisar arquivos de log gerados pelo tcpwrapper, syslog, e outros para identificar padrões de invasão de seus sistemas. As possibilidades são infinitas (e interessantes :-)

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 Rubens Queiroz de Almeida