Eu tenho que comparar os IPs de dois /etc/hosts
arquivos diferentes e mostrar uma diferença na exibição lado a lado.
Arquivo hosts_sorted
10.244.74.152 REF_UP-4
10.244.74.154 REF_UP-5
10.244.74.156 REF_UP-6
10.244.74.153 REF_UP-7
10.244.74.155 REF_UP-8
10.244.74.157 REF_UP-9
10.244.74.159 REF_UP-10
10.244.74.160 REF_UP-11
Arquivo hosts_new_sorted
10.244.74.152 REF_UP-4-new
10.244.74.154 REF_UP-5-new
10.244.74.156 REF_UP-6-new
10.244.74.153 REF_UP-7-new
10.244.74.155 REF_UP-8-new
10.244.74.157 REF_UP-9-new
10.244.74.160 REF_UP-11-new
E minha saída esperada
< 10.244.74.159 REF_UP-10
Eu já classifiquei as entradas por IP e usei diff <(cut -f1 hosts_sorted) <(cut -f1 hosts_new_sorted)
. No entanto, isso elimina os nomes de host necessários. Existe uma maneira de dizer ao diff apenas para usar a primeira coluna? No entanto, a comparação não deve incluir a segunda coluna.
text-processing
awk
diff
hosts
Philipp Birkl
fonte
fonte
diff hosts_sorted hosts_new_sorted
não está fazendo o que você quer?/etc/hosts/
)10.244.74.162 REF_UP-12-new
? você não deseja essa linha, pois sua resposta aceita apenas verifica em uma direção, o que significa que imprime as linhas que hospedam apenas e existem apenas em host_sorted.Respostas:
Tente isso,
ele verificará a presença da primeira coluna de
hosts_sorted
inhosts_new_sorted
, imprime se não estiver disponível.fonte