comm
comm (abbreviazione dalla lingua inglese di common, in comune) è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX[1], che legge due file di testo le cui linee sono ordinate e mostra sullo standard output le linee in comune e le linee presenti solo in uno dei due file. È un tipo di filtro.
Per ordinare i file da usare con comm si può usare il comando sort.
In generale, per trovare le differenze tra due file di testo si può usare il comando diff.
Esempi
Partendo due file di testo contenenti le seguenti linee (ordinate):
file1.txt:
arancio banana carota
file2.txt:
arancio banana banana zucchine
Mostra le linee presenti in solo uno dei due file e quelle presenti in entrambi (notare che banana è riportata sia come presente in entrambi i file che come presente solo nel secondo file, perché è ripetuta più volte nel secondo file):
$ comm file1.txt file2.txt arancio banana banana carota zucchine
Mostra solo le linee presenti in entrambi i file:
$ comm -12 file1.txt file2.txt arancio banana
Mostra le linee presenti solo nel primo file:
$ comm -23 file1.txt file2.txt carota
Mostra le linee presenti solo nel secondo file (banana viene indicato perché si riferisce alla seconda ripetizione, che non è presente nel primo file):
$ comm -13 file1.txt file2.txt banana zucchine