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: 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 :-)
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