Use join
e awk
juntos:
join -t $'\t' -j 1 -a 1 -a 2 -e 0 -o 0,1.2,0,2.2 file1 file2 | \
awk 'OFS="\t"{$5=$2-$4}NR==1{$5="Difference"}1'
Onde:
-
-t
define o delimitador de entrada e saída -
-j
define o campo de junção em ambos os arquivos -
-a
força junção para imprimir linhas não pareadas de ambos os arquivos -
-e
especifica como preencher os campos vazios - e
-o
é o formato de saída -
awk
define primeiro o separador do campo de saídaOFS
para a guia - o quinto campo
$5
é calculado a partir do 2º e 4º - e se for a primeira linha do arquivo, formate o quinto campo como cabeçalho