Aide pour une boucle

Résolu/Fermé
alexlc14 Messages postés 2 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 18 novembre 2016 - 6 nov. 2016 à 19:52
alexlc14 Messages postés 2 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 18 novembre 2016 - 18 nov. 2016 à 12:12
Bonjour.
Je suis en fac de bio et je dois réaliser un projet.
Je suis à la deuxième question (voir image):

Pour les gènes trouvés dans les échantillons TARA, quantifier par profondeur le
nombre de groupes d’orthologues (i.e. gènes partageant une origine évolutive
commune) identifiés.

J'ai donc réussi à réaliser la question en plusieurs étape avec par exemple pour la profondeur MES:
awk '/MES/{n=split($3,tab,"\t");for(i=1;i<=n;i++){compt[tab[i]]++}}
END {for(c in compt){print c, compt[c]}}' seq.tsv | sort > question 2

Cependant mon but serait de créer une boucle afin de changer la recherche MES, SRF... mais toujours en mettant le résultat dans un même fichier en utilisant la commande qui met les résultats de deux fichiers sur deux colonnes différentes: copy?

J'ai donc essayer de créer une boucle dans le awk ou dans le shell avec le tableau:
tabl=[SRF,MES,DCM,MIX]
Mais la sortie que j'obtiens accumule toujours les résultats des différents profondeurs sans jamais les séparer...

J'aimerais donc avoir votre aide pour trouver comment réaliser cette boucle (enfin si c'est possible). Il se peut aussi qu'une autre méthode soit plus simple mais il faut savoir que je ne connais que les commandes très basiques (mkdir, ls, ..) grep, sed et de très faible base de awk.

Si jamais vous avec une solution et si c'est possible, j'apprécierai beaucoup que vous m'expliquiez la démarche à entreprendre et si vous avez le courage de mettre la ligne en spoiler. Mais l'explication est vraiment nécessaire car je passerai à l'oral, et je ne peux pas me permettre de passer sans comprendre.

Un grand merci d'avance.

1 réponse

Utilisateur anonyme
6 nov. 2016 à 21:19
salut,

un tableau, en bash (pas sh ! ce dernier ne supporte pas les tableaux), se note
tableau=( itm1 itm2 itmn )

et en awk, ainsi :
$ awk 'BEGIN{val="itm1 itm2 itmn"; split(val,tableau," ")}'
0
alexlc14 Messages postés 2 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 18 novembre 2016
18 nov. 2016 à 12:12
Merci :)
0