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, $2et $3de Fichier1 ; maintenant je dois comparer si $1de Fichier1 égal à $1partir Fichier2 ; si c'est vrai, je dois prendre $3et $4de File2 qui n'existent pas dans File1 , alors je dois aller à File3 et vérifier si $1de File3 est égal à $3de File2 , et $2de File3 est égal à $4de File2 ; si oui, je dois vérifier si $2depuis File1est égale à $3partir Fichier3 , alors si cette condition est vrai, je dois comparer $3de Fichier1 avec $4de Fichier3 , si $3de Fichier1 est plus $4de 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