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: Mário Jorge Limeira dos Santos
Data de Publicação: 17 de agosto de 2016
Recentemente necessitei descobrir quais itens estavam presentes em um arquivo texto com uma lista de números e não estavam presentes em uma segunda lista do mesmo tipo. Para uma lista pequena, é simples realizar a tarefa manualmente, mas para uma lista com milhares de linhas torna-se uma tarefa cansativa. Para solucionar o problema foi utilizado o comando grep. O procedimento foi feito no sistema operacional GNU-Linux mint, mas deve funcionar em qualquer outra distro GNU-Linux.
No meu exemplo, utilizei arquivos texto do tipo .csv
(Comma separated values), mas a dica deve servir em qualquer arquivo
texto, desde que a lista possua apenas um item por linha.
Chamei a primeira lista de lista1.csv
e a segunda lista de
lista2.csv
. O que queremos descobrir é quais itens estão presentes na
lista2 e não estão presentes na lista1. Para tanto, no terminal (shell)
faça:
$ grep -vf lista1.csv lista2.csv
O resultado do comando será enviado para a saída padrão (tela). Caso sejam
muitas linhas e deseje saber quantas linhas são, basta redirecionar a saída
para o comando wc
, dessa forma:
$ grep -vf lista1.csv lista2.csv | wc -l
Para guardar o resultado do comando em um arquivo para uso posterior:
$ grep -vf lista1.csv lista2.csv > resultado.csv
Para saber mais sobre o comando grep
e a função de cada opção utilizada,
consulte o manual do comando:
$ man grep
Muitas outras dicas e usos do GNU grep podem ser encontrados aqui mesmo no dicas-l.
Mário Jorge é Analista de Tecnologia da Informação do IFCE. https://diasporabr.com.br/i/651382b44715 "Software should be free".
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