Bonjour à tous ,

Je me permet de solliciter votre aide. En effet, j'ai précédement était déjà bloqué pour ce même genre de question. J'ai donc essayer d'adapter les dictionaire de language python pour réaliser ce que je souhaitais mais sans succès. je me suis donc rabattue sur du bash. Voici le problème : je possède deux fichiers :
ort.csv
AGAP002556
AGAP010489
NA
NA
NA
NA
NA
AGAP012320
AGAP010409
AGAP011647
NA
NA

et
BD.csv qui me sert de base de données

AGAP002189;agamobp14;Q8I8T3;188;2R;17331871;17332553;Classic;mclassic9;NA;aaegobp18;cquiobp63
AGAP008398;agamobp21;Q8I8S3;131;3R;10317255;10317835;Classic;mclassic5;NA;aaegobp8;cquiobp23
AGAP010409;agamobp22;Q7PGA3;144;3L;2853087;2853645;Classic;mclassic8;NA;aaegobp81;cquiobp44
AGAP012318;agamobp23;Q8I8R9;131;3L;40168852;40169329;Classic;mclassic3;NA;aaegobp9;cquiobp22
AGAP012319;agamobp24;Q8I8R8;176;3L;40171315;40172237;Classic;mclassic2;NA;aaegobp77;cquiobp21
AGAP012320;agamobp25;Q7Q088;142;3L;40209434;40210326;Classic;mclassic3;NA;aaegobp11;cquiobp19
AGAP012321;agamobp26;Q8I8R6;131;3L;40213816;40214477;Classic;mclassic3;NA;aaegobp35;cquiobp20
AGAP012323;agamobp27;Q5TN65;134;3L;40218226;40218764;Classic;mclassic1;NA;aaegobp65;cquiobp16
AGAP012325;agamobp28;Q8I8R4;134;3L;40221011;40221620;Classic;mclassic3;NA;aaegobp12;cquiobp18
AGAP012322;agamobp63;Q6H900;135;3L;40217381;40217853;Classic;mclassic4;NA;aaegobp61;cquiobp17
AGAP012324;agamobp64;Q5TN67;142;3L;40219631;40220284;Classic;mclassic1;NA;aaegobp15;cquiobp15

Le but est donc de rechercher les éléments de ort.csv dans BD.csv. Si il retrouve le motif, il imprime les colonnes 8 et 9 en y ajoutant (by inference) pour chaque colonne (soit ici Classic (by inference) et mclassic (by inference)). Si il n'y a pas de correspondance mettre NA. Voici le code que j'ai réalisé pour le moment sans succès.... Je suis ouverte à toutes proposition de résolutions :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
 
#!/bin/bash
 
cut -d ';' -f 10 albopictus.csv >1.txt
sed -e 's/ //g' 1.txt >ort.csv
rm 1.txt
 
 
for ligne in `cat ort.csv`
do
a= grep -w $ligne BD.csv | cut -d';' -f 1 | head -1
if [ -n "$a" ]
then
awk '{print $8, $9}' BD.csv
else
echo "NA"
fi
 
done
Vous en remerciant