Considere os seguintes arquivos:
file1
:
boo,8,1024
foo,7,2048
file2
:
foo,0,24,154
noo,0,10,561
file3
:
24,154,7,1024,0
O que eu preciso é ir para o Arquivo1 e verificar se $2==7
; se for verdade, tomar $1
, $2
e $3
de File1 ; agora eu tenho que comparar se $1
de File1 igual a $1
de File2 ; se for verdade, eu tenho que tomar $3
e $4
de File2 que não existem em File1 , então eu tenho que ir para File3 e verifique se $1
a partir File3 é igual a $3
de File2 , e $2
de File3 é igual a $4
de File2 ; se sim, então eu tenho que verificar se $2
do arquivo1é igual a $3
do arquivo3 , se essa condição for verdadeira, tenho que comparar $3
do arquivo1 com $4
do arquivo3 , se $3
do arquivo1 for mais do que $4
do arquivo3 .
Eu tentei o seguinte script:
cat [file1] [file2] [file3] |
awk -F,
'{if(NF==3)
{if($2==7){a[$1]=$1; b[$1]=$2; c[$1]=$3}
}else
{if(NF==4){if(a[$1]==$1){d[$3]=$3; e[$4]=$4}
}else
{if(NF==5){if(d[$1]==$1 && e[$2]==$2){print a[$1], b[$1], c[$1], d[$1]}}
}
}
}'
A saída desejada é:
foo,7,2048,24,154,1024