awk :
awk 'BEGIN{ FS=OFS="\t" }
NR==FNR{ if(NF && !($0 in b)) { a[++c]=$0; b[$0] } next }{ b[$1]+=$2 }
END{ len=length(a); for(i=1;i<=len;i++) if(a[i] in b) print a[i],b[a[i]] }' patterns data
-
BEGIN{ FS=OFS="\t" }
- separador de campos de configuração -
a[++c]=$0; b[$0]
- coletando nomes exclusivos de diário do arquivopatterns
-
b[$1]+=$2
- somando os números de cada nome do diário emdata
file -
if(a[i] in b) print a[i],b[a[i]]
- acrescenta o valor da soma a cada nome do diário no arquivopattern
A saída:
10th ECOMF,PAB 1
10th ICOCPS (CPV-'10) 29
10th ICOMAMOS (M2S-X) 3
JOP 75
AIP 34
HIT 42
...