Formation bio-informatique 18 au 21/10/2011 Module Linux Bruno Granouillac – UMR MIVIGEC & VIH Christine Tranchant-Dubreuil – UMR DIADE But BUT Présentation de linux Apprentissage de base pour bien commencer avec linux APPLICATION Connaître les commandes de base sous linux Manipulation de fichiers (sort, cut, wc, tr) Trier et filtrer des données (grep / sed / awk) Lancer des logiciels bioinformatiques en ligne de commande - Introduction : Présentation de linux Début 1970 : création du système d’exploitation UNIX Plusieurs variantes : Ultrix, AIX, SunOS et Linux (1991) Système libre, robuste et multi-plateforme Système multi-utilisateur, multi-tâche Plusieurs utilisateurs peuvent travailler en même temps; chaque utilisateur peut effectuer une ou plusieurs tâches en même temps Une tâche ou un processus = programme Les taches sont protégées; certaines peuvent communiquer Fichiers répartis dans une arborescence de fichiers et répertoires Introduction : Présentation de linux Le noyau (kernel) gère les tâches de base du système : initialisation du système la gestion des ressources la gestion des processus la gestion des fichiers la gestion des Entrées/Sorties L’utilisateur communique avec le noyau par l’intermédiaire d’un SHELL via des lignes de commande. Les shells sont aussi des langages de programmation Shell et commande en mode texte forment l’interface de base au système SHELL Sortie NOYAU Entrée Introduction : Version et distribution de linux APPLICATION Distribution : noyau auquel des logiciels ont été ajouté SHELL NOYAU Introduction : Version et distribution de linux APPLICATION Distribution : noyau auquel des logiciels ont été ajoutés SHELL NOYAU Concrètement uname –a ! ! ! cat /etc/issue !affiche notamment la version du noyau affiche la distribution Pour en savoir plus Site officiel de linux : http://www.linux.org Lea-linux : http://www.lea-linux.org Wiki : http://fr.wikipedia.org/wiki/Linux Liste des distributions : http://linux.org/dist/ Introduction : Pourquoi utiliser linux? Pour utiliser la puissance des lignes de commandes disponibles sous linux (cf. shell) Facilité de lier des commandes et de les automatiser La majorité des outils bio-informatiques fonctionnent sous linux Les serveurs utilisés sont sous linux Point négatif : convivialité Le shell : introduction Interpréteur de commande et langage de programmation Interface entre l’utilisateur et le système d’exploitation grâce au lignes de commande Plusieurs shells : sh (Bourne shell), bash (Bourne again shell), csh (ksh) Concrètement echo $SHELL ! ! !affiche le shell installé/utilisé par défaut Le shell : introduction Le travail en « ligne de commande » est souvent plus efficace et rapide qu’à travers une interface graphique Lancées dans une console (terminal) en local ou à distance via une liaison sécurisée SSH (sans interface graphique) Facilement scriptables et automatisées des tâches Le shell : invite de commande et ligne de commande Syntaxe d’une commande shell Syntaxe : commande [ -options ] [ arguments ] Exemple : Le shell : invite de commande et ligne de commande Syntaxe d’une commande shell Syntaxe : commande [ -options ] [ arguments ] Exemple : Prompt [granouil@bioinfo-musclor Data]$ ! ! Le shell : invite de commande et ligne de commande Syntaxe d’une commande shell Syntaxe : commande [ -options ] [ arguments ] Exemple : Prompt [granouil@bioinfo-musclor Data]$ ! nom de l’utilisateur ! nom de la machine Répertoire courant Le shell : invite de commande et ligne de commande Syntaxe d’une commande shell Syntaxe : commande [ -options ] [ arguments ] Exemples : Prompt [granouil@bioinfo-musclor Data]$ ! ! pwd Commande Le shell : invite de commande et ligne de commande Syntaxe d’une commande shell Syntaxe : commande [ -options ] [ arguments ] Exemples : Prompt Résultat de la commande [granouiil@bioinfo-musclor Data]$ /home/granouill/Data [granouil@bioinfo-musclor Data]$ ! ! pwd Commande Quelques commandes Focus : la commande à ne pas oublier man (pour manuel) $man ls ! ! ! Quelques commandes date ! who ! whoami! cal! ! uname ! id ! ! su ! ! exit ! ! ! ! ! ! ! ! ! !affiche la date et l’heure système ! ! !affiche la liste des utilisateurs connectés !affiche le compte sous lequel on est connecté !affiche un calendrier !affiche le nom du système et la version !affiche l’identité de l’utilisateur ! !permet de changer l’identité/login! !met fin à une session shell ! TP1 : première utilisation du terminal Booter sur la clé pour charger le système d’exploitation biolinux (http:// nebc.nerc.ac.uk/tools/bio-linux/bio-linux-6.0) Ouvrir une console à partir de laquelle vous allez pouvoir lancer les premières lignes de commandes. Dans quel répertoire, la session s’ouvre t elle (prompt)? Le prompt est il structuré de la même manière que sur le serveur bioinfo-musclor [granouil@bioinfomusclor ]$ Vérifier avec la commande pwd le nom de votre répertoire de travail Quel est le nom de l’OS sous lequel vous travaillez? Quelle est la version du noyau? Afficher l’aide de la commande cal Tester quelques commandes vues dans la diapo précédente (ex : commande whoami et date) L’arborescence de fichiers Les principaux répertoires / bin / ! ! ! /bin ! ! /etc ! ! /lib ! ! /sbin ! ! /usr, /opt! /usr/bin ! /var ! /tmp ! /home ! ! etc lib sbin usr home !Répertoire racine (root) ! !Principales commandes, shell !Fichiers de configuration du système !Bibliothèques ! !Commandes d’administration !Application, bibliothèque liés aux utilisateurs !Autres commandes !! Journaux de bord Fichiers temporaires !Répertoires des utilisateurs (un répertoire par utilisateur = login) L’arborescence de fichiers / bin etc lib sbin usr home granouill Script blast.pl Chemin absolu : part de la racine et commence par / tranchan Data Sequences.fasta L’arborescence de fichiers : chemin absolu / bin etc lib sbin usr home granouill Script blast.pl Chemin absolu : part de la racine et commence par / Exemples : tranchan Data Sequences.fasta L’arborescence de fichiers : chemin absolu / bin etc lib sbin usr home granouill Script blast.pl Data Sequences.fasta Chemin absolu : part de la racine et commence par / Exemples : Fichier Sequences.fasta tranchan Chemin absolu /home/granouill/Data/sequences.fasta L’arborescence de fichiers : chemin absolu / bin etc lib sbin usr home granouill Script blast.pl Data Sequences.fasta Chemin absolu : part de la racine et commence par / Exemples : Fichier tranchan Chemin absolu sequences.fasta /home/granouill/Data/sequences.fasta blast.pl /home/granouill/Script/blast.pl L’arborescence de fichiers : chemin relatif / bin etc lib sbin usr home granouill Script blast.pl tranchan Data Sequences.fasta Chemin relatif : indique l’emplacement du fichier à partir du répertoire courant Répertoire courant Chemin relatif Data Sequences.fasta L’arborescence de fichiers : chemin relatif / bin etc lib sbin usr home granouill Script blast.pl tranchan Data Sequences.fasta Chemin relatif : indique l’emplacement du fichier à partir du répertoire courant Répertoire courant Chemin relatif Data Sequences.fasta Data ./sequences.fasta L’arborescence de fichiers : chemin relatif / bin etc lib sbin usr home granouill Script blast.pl tranchan Data Sequences.fasta Chemin relatif : indique l’emplacement du fichier à partir du répertoire courant Répertoire courant Chemin relatif Data Sequences.fasta Data ./sequences.fasta Granouill Data/sequences.fasta L’arborescence de fichiers : chemin relatif / bin etc lib sbin usr home granouill Script blast.pl tranchan Data Sequences.fasta Chemin relatif : indique l’emplacement du fichier à partir du répertoire courant Répertoire courant Chemin relatif Data Sequences.fasta Data ./sequences.fasta Granouill Data/sequences.fasta Script L’arborescence de fichiers : chemin relatif / bin etc lib sbin usr home granouill Script blast.pl tranchan Data Sequences.fasta Chemin relatif : indique l’emplacement du fichier à partir du répertoire courant Répertoire courant Chemin relatif Data Sequences.fasta Data ./sequences.fasta Granouill Data/sequences.fasta Script ../Data/sequences.fasta Pour se déplacer dans l’arborescence Focus : la commande cd (Change Directory) $cd nom_du_répertoire(chemin absolu ou relatif) ! ! ! ! Répertoire d’arrivée Chemin absolu Data cd /home/granouill/Data Script cd /home/granouill/Script/ Répertoire courant Répertoire d’arrivée Chemin relatif granouill Data cd data Data granouill cd .. Data home cd ../.. Data granouill cd ~ Remonte d’un dossier Remonte de 2 dossiers Pour aller au répertoire d’accueil Quelques commandes Gestion de fichiers et de répertoire pwd ! ! ! ls nom_rep ! cd nom_rep ! mkdir nom_rep ! rmdir !nom_rep rm –r nom_rep ! ! ! ! ! ! ! Nom du répertoire de travail !Lister le contenu d’un répertoire !Change de répertoire de travail !Crée un répertoire !Détruit le répertoire !Détruit le répertoire et tous les fichiers qu’il contient (A utiliser avec prudence) cp source cible ! ! ! !copier source vers cible mv ancien-nom nouveau-nom! !changer le nom d un fichier TP TP1 : http://bioinfo.mpl.ird.fr (lien trainings) Exercice 1 :Se déplacer dans l’arborescence système en utilisant les Exercice 2 : mkdir, mv, cp, ls, cd Les attributs des fichiers Focus : la commande ls -l Syntaxe : $ ls –l nom_fichier -rwxrw-r–- 1 granouill bioinfo 153 Jul 23 20:21 nom_fichier Droits Type Propriétaire group - : fichier ordinaire d : répertoire l : les liens. c ou b : fichiers spéciaux associés aux périphériques (/dev) taille Date et heure de la dernière modification Les droits des fichiers Droits -rwxrw-r–- 1 granouill bioinfo 153 Jul 23 20:21 nom_fichier other group user 3 classes 3 types de droits : Droits Fichier Répertoire Read r Ouvrir et lire Lister les fichiers et les copier Write w Modifier et supprimer un fichier Manipuler son contenu : créer, copier, déplacer ou détruire son contenu Execution x Exécuter le fichier comme une commande Accéder aux fichiers Les droits des fichiers Focus : la commande chmod pour gérer les droits Syntaxe : $ chmod <classe op perm> nom_fichier Chaque permission = 1 valeur Classe u : user g : group o : other a : all (u+g+o) + : ajouter droits - : supprimer droits = : affecter droits r w x R 4 W 2 X 1 rien 0 Exemple chmod u=rwx, g=rx, o=x seq.fasta # Owner=rwx Group=r-x Other=--x chmod a+x script.sh # Owner=rwx Group=r-x Other=--x chmod 755 script.sh TP Exercice 3 : les droits : ls, chmod Les attributs des fichiers Focus : la commande ls -l Syntaxe : $ ls –l nom_fichier -rwxrw-r–- 1 granouill bioinfo 153 Jul 23 20:21 nom_fichier Exemple : Quelques options de la commande ls ls avec options Action ls –l /home/granouill/Script/ Affiche les fichiers et leurs attributs (format long) Quelques options de la commande ls ls avec options Action ls –l /home/granouill/Script/ Affiche les fichiers et leurs attributs (format long) ls –al /home/granouill/Script/ Affiche en plus les fichiers « cachés » (nom commençant par un .) Quelques options de la commande ls ls avec options Action ls –l /home/granouill/Script/ Affiche les fichiers et leurs attributs (format long) ls –al /home/granouill/Script/ Affiche en plus les fichiers « cachés » (nom commençant par un .) ls –t Script Trie par date Sous unix, possibilité d’exécuter la commande ls sur un ensemble de fichiers dont on ne connaît pas le nom à l’aide de caractères spéciaux appelés génériques Caractères génériques Caractère générique Equivalence ? Tout caractère seul * Toute chaîne de caractères [ensemble] Tout caractère dans ensemble [!ensemble] Tout caractère non dans ensemble Caractères génériques Caractère générique Equivalence ? Tout caractère seul * Toute chaîne de caractères [ensemble] Tout caractère dans ensemble [!ensemble] Tout caractère non dans ensemble Exemple : programme.c programmes.pl programme.log fichier.contig programme.o Caractères génériques Caractère générique Equivalence ? Tout caractère seul * Toute chaîne de caractères [ensemble] Tout caractère dans ensemble [!ensemble] Tout caractère non dans ensemble Exemple : programme.c programmes.pl ls programme.? programme.log fichier.contig #programme.c programme.o programme.o Caractères génériques Caractère générique Equivalence ? Tout caractère seul * Toute chaîne de caractères [ensemble] Tout caractère dans ensemble [!ensemble] Tout caractère non dans ensemble Exemple : programme.c programmes.pl programme.log fichier.contig programme.o ls programme.? #programme.c programme.o ls programme* #programme.c programme.log programme.o programmes.pl Caractères génériques Caractère générique Equivalence ? Tout caractère seul * Toute chaîne de caractères [ensemble] Tout caractère dans ensemble [!ensemble] Tout caractère non dans ensemble Exemple : programme.c programmes.pl programme.log fichier.contig programme.o ls programme.? #programme.c programme.o ls programme* #programme.c programme.log programme.o programmes.pl ls *.c* #programme.c fichier.contig Caractères génériques Caractère générique Equivalence ? Tout caractère seul * Toute chaîne de caractères [ensemble] Tout caractère dans ensemble [!ensemble] Tout caractère non dans ensemble Exemple : programme.c programmes.pl programme.log fichier.contig programme.o ls programme.? #programme.c programme.o ls programme* #programme.c programme.log programme.o programmes.pl ls *.c* #programme.c fichier.contig ls programme.[co] #programme.c programme.o Quelques commandes Gestion de fichiers et de répertoire touch option nom-fichier ! ln –s source cible ! ! ! éditeurs en ligne vi, nano éditeurs graphiques gedit, scite !créer un nouveau fichier ! !créer un lien symbolique ! TP Exercice 4 : touch, cp, ls, mv Exercice 5 : rm, cd, rm Pour visualiser des fichiers et filtrer les donnees head! Liste les n premières lignes du fichier (par défaut 10 lignes) head –n 20 script.pl tail! Liste les n dernières lignes du fichier (par défaut 10 lignes) Option –f tail –n 5 script.pl more! Liste le contenu d'un fichier page par page more script.pl cat! Liste le contenu du fichier cat script.pl less! Liste le contenu du fichier page par page (espace / b / q –N) less script.pl Pour visualiser des fichiers et filtrer les donnees sort! sort fichier sort –k2n,2n fichier sort –k2nr,2nr fichier sort –k2n,2n –k1r,1r fichier sort -t: -k3n,3n fichier Trie les lignes du fichier suivant l’ordre ASCII cut! cut -c(sélection_colonnes) [fichiers] cut -c5-10 fichier cut -d(séparateur) -f(sélection_champs) [fichiers] cut -d: -f1,5 /etc/passwd Sélectionner des colonnes ou champs d’un fichier wc! wc script.pl wc –l script.pl compter le nombre de ligne d'un fichier, mais aussi le nombre de mot ou de caractères tr! tr [options] ch1 ch2 <fich1 >fich2 tr 'A-Z' 'a-z’ < fichier1 convertir une chaîne de caractère en une autre de taille égale TP Exercice 6 : more, cat, less Exercice 7 : nano, cat, ls Exercice 8 : Trouver un fichier : find, locate Exercice 9 : sort, cut, wc, tr, split Le shell : entrée-sorties standard Lors de l’exécution d’une commande, un processus est créé qui va ouvrir 3 flux : Entrée standard dans lequel le ps va lire les données STDIN Sortie standard dans lequel le ps va écrire les données Processus STDOUT Erreur standard dans lequel le ps va écrire les messages d’erreur Rediriger l’entrée et la sortie afin qu’elles se fassent depuis ou vers un fichier Le shell : entrée-sorties standard $cut -d: -f1 /etc/passwd > nom_user.liste Redirection Action Commande1 > fichier Redirige la sortie de la commande vers un fichier dont le contenu est effacé si ce fichier existe déjà Commande2 >> fichier Redirige la sortie de la commande vers un fichier en l’ajoutant à la fin du fichier s’il existe déjà Commande1 < fichier Redirige l’entrée standard d’une commande (un fichier) Commande1 < fichier > fichier Possibilité de rediriger les entrées et les sorties en même temps Le shell : tubes de redirection Possible de connecter les programmes l’un à l’autre sous forme de tube ou pipeline Diriger la sortie d’une commande vers l’entrée standard d’une autre commande à la place d’un fichier Opérateur | Le shell : tubes de redirection $cut -d: -f1 /etc/passwd Root troot iroot ctroot // $cut -d: -f1 /etc/passwd | sort $cut -d: -f1 /etc/passwd | sort | head abate adm adroot ais #albar alvaro-wis anthony apache Le shell : caractères spéciaux & & (esperluète) : exécute une commande en arrière-plan en ajoutant un & à la fin de la ligne de commande. L'usager peut taper d'autres commandes, fermer sa session sur un serveur distant blastall –d nr –i est.fasta –p blastx & top! ! ! ! !affiche en continu les processus actifs et ! !l'état de la mémoire! ps ! ! !affiche les tâches éxécutées !! Kill pour arrêter ces mêmes tâches ! Le shell : Caractères spéciaux Caractère Signification ~ Répertoire d’accueil # Commentaire $ Variable & Job d’arrière plan > Redirection de la sortie < Redirection de l’entrée / Séparateur de répertoire dans les chemins Autres caractères spéciaux: * ? ( ) { } [] ; ‘ ’ ! TP Exercice 10 : Processus et Processeurs (ps, top, kill) Exercice 11 : Redirection et pipe Recherche de ligne dans un fichier : Grep La commande grep permet de rechercher une chaîne de caractères dans un fichier Syntaxe : grep [options] motif_cherche [fichier1 …] Exemple : grep “AC109“ sequence.fasta Option Description -l Affichage uniquement des noms des fichiers contenant la chaîne recherchée. Les lignes ne sont pas affichées -c affichage du nombre de lignes trouvées sans affichage de ces lignes. -n Précéder chaque ligne contenant la chaîne recherchée de son numéro dans le fichier d'entrée. -s Les messages d'erreur ne seront pas affichées. -i Ne fait pas la différence entre majuscule et minuscule. -v Affiche toutes les lignes qui ne contiennent pas le mot en question. Grep : Expression régulière Les métacaractères les plus simples et les plus utilisés Métacaractère Description . Un caractère quelconque y compris l’espace x* Zéro ou plusieurs occurrences du caractère x x+ Une ou plusieurs occurrences du caractère x x? Une occurrence unique du caractère x ^… Début d’une ligne de texte …$ Fin d’une ligne de texte [A-Z ] N’importe quel caractère se trouvant dans la liste entre [ ] [^A] N’importe quel caractère à l’exception de ceux se trouvant dans la liste entre [ ] \{n\} Pour définir le nombre de répétition n du caractère placé devant Quelques exemples de recherche de mot avec Grep Exemple Description grep malloc *.c cherche la chaine de caractères malloc dans tous les fichiers dont le nom se termine par .c (*.c). Quelques exemples de recherche de mot avec Grep Exemple Description grep malloc *.c cherche la chaine de caractères malloc dans tous les fichiers dont le nom se termine par .c (*.c). grep –c “^>[AC]* Compte le nombre de séquence commençant par A ou C Quelques exemples de recherche de mot avec Grep Exemple Description grep malloc *.c cherche la chaine de caractères malloc dans tous les fichiers dont le nom se termine par .c (*.c). grep –c “^>[AC]* Compte le nombre de séquence commençant par A ou C ls -1 | grep ^a | wc -l Tous les fichiers commençant par a Quelques exemples de recherche de mot avec Grep Exemple Description grep malloc *.c cherche la chaine de caractères malloc dans tous les fichiers dont le nom se termine par .c (*.c). grep –c “^>[AC]* Compte le nombre de séquence commençant par A ou C ls -1 | grep ^a | wc -l Tous les fichiers commençant par a grep ^[a-d] carnetadresse.txt On va obtenir tous les lignes commençant par les caractères compris entre a et d TP Exercice 12 : commande grep Recherche et modification de ligne : Sed sélectionne les lignes d'un fichier texte (ou d'un flot provenant d'un pipe) vérifiant une expression régulière et leur applique un traitement ou un remplacement Syntaxe : !sed [-n] [-e script] [-f fichier-commandes] fichier-source! Exemple : Option Description -n écrit seulement les lignes spécifiées sur la sortie standard -e permet de spécifier les commandes à appliquer sur le fichier. Cette option est utile lorsque vous appliquez plusieurs commandes. Afin d’éviter que le shell interprète certains caractères, il faut mieux encadrer la commande avec des ' ou des « . -f les commandes sont lu à partir d'un fichier. Quelques exemples avec sed Exemple Description sed "s/linux/LINUX/" fichier* change la 1ère occurrence rencontrée de la chaîne linux par LINUX sed "s/linux/LINUX/3“ fichier change la 3ème occurrence rencontrée de la chaîne linux par LINUX sed "s/linux/LINUX/g“ fichier change toutes les occurences de la chaîne linux par LINUX sed "s/[Ll]inux/LINUX/g" fichier change toutes les occurences de la chaîne linux ou Linux par LINUX Quelques exemples avec sed Explication sed "s/motif_cherche/nouveau_motif/" fichier substitution Motif recherché Motif de remplacement Fichier traité Quelques exemples avec sed Explication sed "s/[0-9][0-9]*/nouveau_motif/" fichier Motif recherché : une chaîne de caractère débutant par un chiffre suivi d’aucun ou plusieurs chiffres Quelques exemples avec sed Explication sed "s/\([0-9][0-9]*\)/nouveau_motif/" fichier Sélection de la chaîne de caractère répondant au motif recherché => Chaîne de caractères stockées dans la variable \1 Quelques exemples avec sed Explication sed "s/\([0-9][0-9]*\)/**\1**/" fichier variable \1 => encadre le premier nombre de la ligne avec des ** Quelques exemples avec sed Exemple Description sed "s/linux/LINUX/" fichier* change la 1ère occurrence rencontrée de la chaîne linux par LINUX sed "s/linux/LINUX/3“ fichier change la 3ème occurrence rencontrée de la chaîne linux par LINUX sed "s/linux/LINUX/g“ fichier change toutes les occurences de la chaîne linux par LINUX sed "s/[Ll]inux/LINUX/g" fichier change toutes les occurences de la chaîne linux ou Linux par LINUX sed "s/\([0-9][0-9]*\)/**\1**/" fichier encadre le premier nombre de la ligne avec des ** sed s/\>/\>VS1-/g seq.fasta > new_seq.fasta insère VS sed s/\|/-/g contigs_m_f_specif.fasta Substitue | par - TP : elle sera testée dans le TP2 Recherche et modification de ligne : awk Langage de gestion ligne à ligne de fichiers Syntaxe : !awk [-F] [-v variable] [-f fichier de commandes] 'program' fichier! Exemple :… Option Description -F Spécifie les séparateurs de champs -v Définie une variable utilisée à l'intérieur du programme. -f Les commandes sont lu à partir d'un fichier. awk : fichier repertoire.in Helene 56 edu [email protected] jean 32 ri [email protected] julie 22 adm [email protected] michel 24 inf [email protected] richard 25 inf [email protected] awk : fichier repertoire.in Helene 56 edu [email protected] jean 32 ri [email protected] julie 22 adm [email protected] michel 24 inf [email protected] richard 25 inf [email protected] Les variables prédéfinies Variable Description Valeur $0 Une ligne/entrée FS Séparateur de champs FS=“ “ NF Nombre de champs NF=4 NR Nombre de lignes NR=5 awk : Expression régulière $awk '{print $0}’ awk.in Helene 56 edu [email protected] jean 32 ri [email protected] julie 22 adm [email protected] michel 24 inf [email protected] richard 25 inf [email protected] ! ! awk : Expression régulière $awk '{print NR,$1,$4}’ awk.in 1 Helene [email protected] 2 jean [email protected] 3 julie [email protected] 4 michel [email protected] 5 richard [email protected] ! awk : Expression régulière $awk '{print NF,$1,$3}’ awk.in 4 Helene edu 4 jean ri 4 julie adm 4 michel inf 4 richard inf ! awk : Expression régulière Langage de programmation aussi avec suite d’instructions awk 'Programme' Fichier-1 Fichier-2 ..... Fichier-n Programme est une suite d’instructions dont la forme générale est : Condition {Instr-1; Instr-2; ...; Instr-n} $$awk '{if($2>24) print « L age d », $1, « est superieur a 24 et est egal a », $2}' L age d Helene est superieur a 24 et egal a 56 L age d jean est superieur a 24 et egal a 32 L age d richard est superieur a 24 et egal a 25 awk : Expression régulière $awk ’$3 == “inf" {print $0}' ’ awk.in michel 24 inf [email protected] richard 25 inf [email protected] $awk ’/j/ {print $0}' ’ awk.in jean 32 ri [email protected] julie 22 adm [email protected] awk : Expression régulière $awk ’ {print $1,$2-10} ’ awk.in Helene 46 Jean 12 Julie 12 Michel 14 Richard 15 ! $awk ’ $2 > 30 && $3 == “ri" {print $0} ’ awk.in jean 32 ri [email protected] ! TP Exercice 13 : commande awk Puis commencez le TP2 (http://bioinfo.mpl.ird.fr (lien trainings))!