Dados dois arquivos classificados , comm
faria isso por você.
Veja as combinações das opções de linha de comando -2 -3
e -1 -3
, por exemplo.
Digamos que eu tenha duas listas:
guests-2016.txt
:
Peter
Michael
Frank
Dirk
guests-2017.txt
:
Mark
Michael
Dirk
Lilly
Como posso criar duas novas listas de convidados
Os convidados que estavam em guests-2016.txt
, mas não estão em guests-2017.txt
( former_guests.txt
)
Os convidados que não estavam em guests-2016.txt
, mas estão em guests-2017.txt
now ( new_guests.txt
)
Linhas em branco devem ser ignoradas. Somente utilitários padrão devem ser usados.
Minha ideia seria usar diff
e fazer um pós-processamento.
Verifique, isso faz o trabalho. Eu posso adicionar uma explicação, se você for necessário.
awk '
/^$/{next}
FNR == NR {guest_2016[$1] = 1}
FNR != NR {
if(!guest_2016[$1])
print $1 > "new_guests.txt"
delete guest_2016[$1];
}
END {
for(i in guest_2016)
print i > "former_guests.txt"
}' guests-2016.txt guests-2017.txt