Primeiro, você precisa classificar cada arquivo. Então você precisa usar comm
. Finalmente, você pode extrair as colunas que comm
produz usando awk
. Então, algo assim.
#! /bin/bash
sort $1 > $1.sorted
sort $2 > $2.sorted
comm -3 $1.sorted $2.sorted > columns
if [ -s columns ]; then
TAB1="$(awk '{ print $1 }' < columns)"
TAB2="$(awk '{ print $2 }' < columns)"
# do something with TAB1 and TAB2
else
echo $1 and $2 contain the same data
fi
Você chamaria esse script assim:
./myscript file1 file2
depois de tornar o script executável com chmod
.