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: Julio Cezar Neves
Data de Publicação: 17 de agosto de 2023
O comando comm
compara dois arquivos classificados linha por linha
Sem opções, produz uma saída de três colunas. A coluna um contém linhas exclusivas para o primeiro arquivo, a coluna dois contém linhas exclusivas para o segundo arquivo e a coluna três contém linhas comuns a ambos os arquivos.
Para entendermos melhor, veja estas duas listas: a de compras e a do que já foi comprado:
$ paste <(seq 6) acomprar comprados # O separador do paste é <TAB>
1 Arroz Cachaça
2 Cachaça Cerveja
3 Cerveja Limão
4 Feijão Maracujá
5 Limão TiraGosto
6 TiraGosto
Então vejamos o comm
funcionando com esses arquivos:
$ comm acomprar comprados
Arroz
Cachaça
Cerveja
Feijão
Limão
Maracujá
TiraGosto
Ou seja, a primeira coluna é só o que está somente no arquivo acomprar
,
a segunda é dos registros exclusivos de comprados e a terceira contém o
que é comum a ambos.
Agora veja como podemos apimentar os nossos scripts com as principais opções
do comando comm
:
-1 |
suprime a coluna 1 (linhas exclusivas para primeiro arquivo) |
-2 |
suprime a coluna 2 (linhas exclusivas para segundo arquivo) |
-3 |
suprime a coluna 3 (linhas que aparecem em ambos os arquivos) |
$ comm -1 acomprar comprados Cachaça Cerveja Limão Maracujá TiraGosto $ comm -2 acomprar comprados Arroz Cachaça Cerveja Feijão Limão TiraGosto $ comm -3 acomprar comprados Arroz Feijão Maracujá
Mas também podemos combinar as opções e estas combinações é que são mais úteis em programação, veja:
$ comm -12 acomprar comprados # Registros comuns aos dois arquivos Cachaça Cerveja Limão TiraGosto $ comm -13 acomprar comprados # Gegistro único em comprados Maracujá $ comm -23 acomprar comprados # Registros únicos em a comprar Arroz Feijão
Fico na torcida para que esta série de artigos sobre comparações de arquivos venha a lhe ser útil na elaboração de scripts… Mas, se você quiser aprender Shell, desde os seus fundamentos até aprender a criar paralelismo de processos em Shell, venha fazer o meu curso. Você gostará!
Veja também os outros artigos da série sobre comparação de arquivos:
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