Você pode comparar NR
com FNR
para distinguir entre processar o primeiro ou os arquivos subseqüentes. Isso ocorre porque FNR
é redefinido por arquivo, enquanto NR
é a contagem em execução. Portanto, somente durante o processamento do primeiro arquivo a condição NR==FNR
será satisfeita.
Para processar o arquivo "mais curto", que deve ser o primeiro ...
awk -F, 'NR==FNR{mapper[$1]=$2;counter[$2]++}...'
Em seguida, processe o arquivo "mais longo" para que seja impresso quando sua condição satisfizer ...
awk -F, 'NR!=FNR&&counter[mapper[$1]]<=2'
Colocando os dois juntos:
awk -F, 'NR==FNR{mapper[$1]=$2;counter[$2]++}NR!=FNR&&counter[mapper[$1]]<=2'
Por padrão, awk
imprime a linha inteira quando os critérios de seleção correspondem, então basta especificar NR!=FNR&&counter[mapper[$1]]<=2
.