Exemplos Práticos de Uso do comm
Agora que você entende o uso básico do comando comm, vamos explorar alguns exemplos práticos que demonstram sua utilidade em cenários do mundo real.
Exemplo 1: Encontrando Novas Entradas
Imagine que você tem duas listas de usuários - uma da semana passada e outra de hoje. Você quer identificar quais usuários são novos (adicionados desde a semana passada).
Vamos criar esses arquivos:
cd ~/project/comm-lab
echo -e "user1\nuser2\nuser3\nuser4\nuser5" | sort > users_last_week.txt
echo -e "user1\nuser3\nuser5\nuser6\nuser7\nuser8" | sort > users_today.txt
Para encontrar os novos usuários (em users_today.txt mas não em users_last_week.txt):
comm -13 users_last_week.txt users_today.txt
Saída:
user6
user7
user8
Exemplo 2: Encontrando Entradas Removidas
Usando os mesmos arquivos, vamos encontrar quais usuários foram removidos desde a semana passada:
comm -23 users_last_week.txt users_today.txt
Saída:
user2
user4
Exemplo 3: Combinando comm com Outros Comandos
O comando comm pode ser combinado com outros comandos para operações mais complexas. Por exemplo, se quisermos contar quantos comandos comuns existem em nossos arquivos originais:
comm -12 commands1.txt commands2.txt | wc -l
Isso direciona as linhas comuns para o comando wc -l, que conta o número de linhas.
Saída:
5
Isso indica que existem 5 comandos comuns a ambos os arquivos.
Exemplo 4: Usando comm com Arquivos Não Ordenados
O comando comm requer arquivos de entrada ordenados. Se você tentar usá-lo com arquivos não ordenados, poderá obter resultados incorretos. Vamos demonstrar isso:
echo -e "cat\nls\npwd\ncd" > unsorted1.txt
echo -e "ls\ncat\ngrep\npwd" > unsorted2.txt
Se tentarmos usar comm diretamente:
comm unsorted1.txt unsorted2.txt
A saída pode ser enganosa porque os arquivos não estão ordenados. A abordagem correta é ordenar os arquivos primeiro:
comm <(sort unsorted1.txt) <(sort unsorted2.txt)
Isso usa a substituição de processo para ordenar os arquivos em tempo real antes de compará-los. Você deve ver um resultado formatado corretamente com as colunas corretas.
Esses exemplos demonstram a versatilidade do comando comm para comparar arquivos de texto em vários cenários, como rastreamento de alterações, encontrar diferenças e filtrar dados.