Isso funcionou para mim:
awk -F, 'FNR==1{++f} \
f==1 && $2==7 {a1[$1]++; a2[$2]=$3; o=$0} \
f==2 && a1[$1] {o=o","$3","$4; a3[$3]=$4} \
f==3 && a3[$1] && $2==a3[$1] && a2[$3] && $4<a2[$3] {print o}' \
file1 file2 file3
Explicação :
- A primeira linha (
FNR==1{++f}) incrementa o índice do arquivo para determinar posteriormente em qual arquivo somos 1-3. -
file1: se
$2for igual a7- preencha uma matriz
a1com$1como índice ea2com$2como índice e$3como valor - anote a variável
o(saída) com os primeiros 3 campos
- preencha uma matriz
-
file2: se
$1defile2for igual a$1defile1(anteriormente gravado ema1)- acrescente
$3e$4à variável de saídao. - preencha uma matriz
a3com$3como índice e$4como valor.
- acrescente
-
file3: se:
-
$1é igual a arquivo2s$3(índice dea3) -
$2é igual a arquivo2s$4(valor dea3) -
$3é igual a file1s$2(índice dea2) -
$4é menor que file1s$3(valor dea2)
-
-
então:
- imprima o valor de
o.
- imprima o valor de