Pensez aux fichiers suivants:
file1
:
boo,8,1024
foo,7,2048
file2
:
foo,0,24,154
noo,0,10,561
file3
:
24,154,7,1024,0
Ce dont j'ai besoin, c'est d'aller dans File1 et de vérifier si $2==7
; si cela est vrai, prendre $1
, $2
et $3
de Fichier1 ; maintenant je dois comparer si $1
de Fichier1 égal à $1
partir Fichier2 ; si c'est vrai, je dois prendre $3
et $4
de File2 qui n'existent pas dans File1 , alors je dois aller à File3 et vérifier si $1
de File3 est égal à $3
de File2 , et $2
de File3 est égal à $4
de File2 ; si oui, je dois vérifier si $2
depuis File1est égale à $3
partir Fichier3 , alors si cette condition est vrai, je dois comparer $3
de Fichier1 avec $4
de Fichier3 , si $3
de Fichier1 est plus $4
de Fichier3 .
J'ai essayé le script suivant:
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]}}
}
}
}'
La sortie souhaitée est:
foo,7,2048,24,154,1024