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 :
Vous en remerciant
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
Partager