2010-07-29 4 views
5

Ho due elenchi di indirizzi IP. Ho bisogno di unirli in tre file, l'intersezione, solo quelli di list1 e quelli di list2.Differenze/unione di due file

posso farlo con awk/diff o qualsiasi altro comando unix semplice? Come?

I file simile a questa:

111.222.333.444 
111.222.333.445 
111.222.333.448 

Grazie!

risposta

3

Se i file sono ordinati poi

join list1 list2 

uscita volontà l'incrocio.

join -v 1 list1 list2 

restituirà solo quelli che sono in elenco1.

join -v 2 list1 list2 

emetterà quelli che sono solo in elenco2.

2

Prima ordinale, utilizzando l'ordinamento, quindi è possibile utilizzare comm.

Intersezione: comm -12 <file1> <file2>

Lista Solo 1: comm -23 <file1> <file2>

Lista 2 Solo comm -13 <file1> <file2>

+0

Oppure pianifica "comm", dando tre colonne, con "solo file 1", "solo file 2" e "comune" (purché i file di input siano ordinati). – Vatine