Analyse de données de
séquençage haut débit
Formation bioinformatique
Thiès - Sénégal, 4 au 12 Octobre 2018
Programme de la formation
1er au 3 octobre Installation du cluster de CERAAS &
Bertrand, Ndomassi formation à l’installation/
administration de cluster
4 octobre Introduction à linux et aux
Bertrand, Ndomassi
Christine
lignes de commandes
5 octobre (matin) Initiation à l’utilisation du
Bertrand, Ndomassi
Christine
cluster bioinformatique du
CERAAS
2
Programme de la formation
Lundi 8 octobre • Présentation des technologies de séquençages
François, Christine,
Ndomassi
• Quelques cas d’utilisation
• Manipulations avancées de données sous linux
• 1ère analyses de données de séquençage
Mardi 9 octobre • Introduction aux gestionnaires de workflow
François, Christine
Manuel, Gautier
TOGGLe & Galaxy
• Mapping (TOGGLe)
• Détection de SNPs (TOGGLe)
3
Programme de la formation
Mercredi 10 oct. • Détection de SNP (filtres, annotation)
François, Christine
Manuel, Gautier
• Détection de variants structuraux
• Post analyse de données SNPs sous Galaxy
Jeudi 11 octobre • Post analyse de données SNPs sous Galaxy
Manuel, Gautier
• Visualisation de variants structuraux sous Galaxy
Vendredi 12 oct. • Questions & discussions
François, Christine
Manuel, Gautier
4
[Link] [Link]
[Link]/trainings/
[Link]/tutorials/
7
Guide de survie à Linux
Thiès - Sénégal, 4 au 12 Octobre 2018
Christine Tranchant – [Link]@[Link]
Ndomassi Tando – [Link]@[Link]
Bertrand Pitollat – [Link]@[Link]
Objectifs du module
The objectif!
Lancez vos analyses sous Linux !
Après ce module, vous serez capable de :
• Connaître les principales commandes Linux
• Se déplacer dans l’arborescence de fichier : pwd, ls, cd, mkdir etc.
• Se connecter à un serveur, transférer les données : ssh, scp, wget
• Manipuler des fichiers : head, tail, sort, cut, wc
• Lancer des logiciels en ligne de commande
Introduction
Qu’est ce Linux?
▪ Système d’exploitation réputé pour :
sa sécurité
ses mises à jour fréquentes
son prix et ses programmes gratuits
▪ Créé en 1991 par Linus Torvalds
▪ Basé sur l’OS propriétaire Unix (1969)
▪ Code source de linux gratuit et libre : copier, modifier, redistribuer
Qu’est ce Linux?
▪ OS robuste et multi-plateforme
(ordinateur, serveur, android…)
▪ Système multi-utilisateurs
Plusieurs utilisateurs peuvent travailler en même temps
▪ Système multi-tâches (processus/programmes)
Chaque utilisateur peut lancer plusieurs programmes en même temps
Distribution sous Linux
SOFTWARES
SHELL
Distribution : Noyau/Coeur + logiciels/programmes
KERNEL
Comment utiliser Linux?
▪ 2 façons d’utiliser linux :
en mode graphique
Comment utiliser Linux?
▪ 2 façons d’utiliser linux :
en mode graphique
en mode console (terminal)
Pourquoi utiliser Linux ?
▪ Nombreux programmes rapides & puissants
▪ Facile de lier des commandes/programmes entre eux
(workflow)
▪ Nombreux outils bioinformatique disponibles
▪ Pas besoin de ressources matérielles importantes
▪ 90% des serveurs fonctionnent sous Linux
Pourquoi utiliser Linux ?
▪ Nombreux programmes rapides & puissants
▪ Facile de lier des commandes/programmes entre eux
(workflow)
▪ Nombreux outils bioinformatique disponibles
▪ Pas besoin de ressources matérielles importantes
▪ 90% des serveurs fonctionnent sous Linux
Pas d’interfaces
graphiques
Convivialité de la ligne
de commande ?
Pourquoi utiliser Linux ?
Nécessité de la pratique et de l’expérience
⬄ Investissement non négligeable pour de bons résultats
rapidement
Environnement de travail
Comment copier un fichier de son PC sur
le serveur ?
Copier un fichier de son PC sur le serveur ?
▪ En se connectant sur un serveur linux distant de son
portable windows ou mac via le protocole sftp
[Link]
Copier un fichier de son PC sur le serveur ?
▪ En se connectant sur un serveur linux distant de son
portable windows ou mac via le protocole sftp
[Link]
sftp
Practice
filezilla, sftp
Go to Practice 1 on our github
1
Environnement de travail
Comment travailler sur le serveur ?
Comment travailler sur le serveur ?
▪ En se connectant sur un serveur linux distant de son
portable windows ou mac via le protocole ssh
[Link]
Comment travailler sur le serveur ?
▪ En se connectant sur un serveur linux distant de son
portable windows ou mac via le protocole ssh
[Link]
ssh
Practice
putty,
terminal, ssh
Go to Practice 2 on our github
2
Premiers Pas sur Linux
Se déplacer dans l’arborescence de fichiers et
manipuler des fichiers/répertoires
Invite / Prompt
Toujours présent sur le terminal, juste avant de taper la commande
Prompt [ ]
Invite / Prompt
Toujours présent sur le terminal, juste avant de taper la commande
Prompt [ ]
Nom Répertoire
Nom
utilisateur courant
serveur
Syntaxe d’une commande
commande [ -options ] [ arguments ]
1ère commande pwd
pwd affiche nom du répertoire courant (et son
Present Work Directory chemin complet)
Commande
Affiche le nom du sans options et
répertoire courant sans argument
2ème commande ls
ls liste fichiers & répertoires présents dans le
list répertoire courant
Liste des fichiers du répertoire Commande
courant (par défaut) sans options et
sans argument
2eme commande linux + option ls -l
ls -l liste les fichiers avec des informations pour
list long chaque fichier/répertoire
Commande avec l’option -l et le nom
d’un répertoire en argument
liste détaillée des
fichiers
Quelques commandes de base
Comment obtenir de l’aide sur une commande?
▪ avec l’option --help ou -h ls --help blastn -h
▪ avec la commande man man ls
Quelques commandes de base
Arborescence linux
pwd Affiche le chemin absolu
ls Liste tous les fichiers/répertoires
ls –l Affiche toutes les informations sur les fichiers
Practice
prompt, pwd
Go to Practice 3 on our github
3
Arborescence sous linux
▪ Arborescence = système de fichiers
▪ Répertoire racine appelé “/”
Répertoire racine
(slash)
/
bin etc lib usr home
Quelques commandes pour commencer
Principaux répertoires
répertoire Root (slash)
bin etc lib usr home
/bin commandes principales
/usr, /opt Applications et librairies
/usr/bin Autres commandes
/home répertoire des utilisateurs (1 par utilisateur/login)
Chemin d’un fichier
Chemin (path) : chemin d’accès à un fichier/répertoire
Chemin d’un fichier
Chemin (path) : chemin d’accès à un fichier/répertoire
absolu
▪ chemin complet du fichier en
partant du répertoire racine /
Chemin d’un fichier
Chemin (path) : chemin d’accès à un fichier/répertoire
absolu
▪ chemin complet du fichier en
partant du répertoire racine /
▪ commence toujours par /
▪ toujours correct, peut importe
où on l’on travaille
-
Chemin d’un fichier
Chemin (path) : chemin d’accès à un fichier/répertoire
absolu relatif
▪ chemin complet du fichier en ▪ chemin défini par rapport où
partant du répertoire racine / on est dans l’arborescence
▪ commence toujours par /
▪ toujours correct peut importe
où on l’on travaille
-
Chemin d’un fichier
Chemin (path) : chemin d’accès à un fichier/répertoire
absolu relatif
▪ chemin complet du fichier en ▪ chemin défini par rapport où
partant du répertoire racine / on est dans l’arborescence
▪ commence toujours par / ▪ ne commence jamais par /
▪ toujours correct peut importe ▪ change selon on l’on travaille
où on l’on travaille
-
Chemin absolu
▪ Commence toujours par / (le répertoire racine)
▪ Toujours correct peu importe où on l’on travaille
bin etc lib sbin usr home
granouill tranchant
script data
[Link] fasta
Chemin absolu du fichier [Link]
[Link]
Chemin absolu
▪ Commence toujours par / (le répertoire racine)
▪ Toujours correct peu importe où on l’on travaille
bin etc lib sbin usr home
granouill tranchant
script data
[Link] fasta
Chemin absolu du fichier [Link]
[Link]
/home/granouill/data/fasta/[Link]
Chemin absolu
▪ Commence toujours par / (le répertoire racine)
▪ Toujours correct peu importe où on l’on travaille
bin etc lib sbin usr home
granouill tranchant
script data
[Link] fasta
Chemin absolu du répertoire script
[Link]
Chemin absolu
▪ Commence toujours par / (le répertoire racine)
▪ Toujours correct peu importe où on l’on travaille
bin etc lib sbin usr home
granouill tranchant
script data
[Link] fasta
Chemin absolu du répertoire script
[Link]
/home/granouill/data/script
Chemin relatif
▪ Défini par rapport où on est dans l’arborescence
▪ Ne commence jamais par /
bin etc lib sbin usr home
granouill tranchant
script data
On est dans le répertoire data
[Link] fasta
Chemin relatif du ficher [Link]
[Link]
Chemin relatif
▪ Défini par rapport où on est dans l’arborescence
▪ Ne commence jamais par /
bin etc lib sbin usr home
granouill tranchant
script data
On est dans le répertoire data
[Link] fasta
Chemin relatif du ficher [Link]
[Link]
fasta/[Link]
Chemin relatif
▪ Défini par rapport où on est dans l’arborescence
▪ Ne commence jamais par /
bin etc lib sbin usr home
granouill tranchant
script data
On est dans le répertoire
fasta [Link] fasta
Chemin relatif du ficher [Link]
[Link]
Chemin relatif
▪ Défini par rapport où on est dans l’arborescence
▪ Ne commence jamais par /
bin etc lib sbin usr home
granouill tranchant
script data
On est dans le répertoire
fasta [Link] fasta
Chemin relatif du ficher [Link]
[Link]
[Link]
Chemin relatif
▪ Défini par rapport où on est dans l’arborescence
▪ Ne commence jamais par /
bin etc lib sbin usr home
granouill tranchant
script data
On est dans le répertoire script
[Link] fasta
Chemin relatif du ficher [Link] [Link]
Chemin relatif
▪ Défini par rapport où on est dans l’arborescence
▪ Ne commence jamais par /
bin etc lib sbin usr home
granouill tranchant
script data
On est dans le répertoire script
[Link] fasta
Chemin relatif du ficher [Link] [Link]
../data/fasta/[Link]
Practice
ls
Go to Practice 4 on our github
4
Raccourcis clavier bien pratiques
Interagir avec les processus
<Ctrl> + C Arrêter le processus en cours sous le terminal
<Ctrl> + Z
Tab completion
<Tab> Complète automatiquement le nom d’un
fichier/ répertoire qui est en cours de saisie (fichier
unique)
<Tab><Tab> Affiche la liste des différentes possibilités si le
choix n'est pas unique
Raccourcis clavier bien pratiques
Intéragir avec l’historique de commandes
Flèche bas/haut - Afficher la commande précédente/suivante
- Presser plusieurs fois pour naviguer dans
l’historique
<Ctrl> + R - Afficher la dernière commande qui contient
les caractères saisis.
- Presser les touches et commencer à taper la
commande recherchée
Règles pour les noms de fichier/répertoire
les fichiers
▪ Linux est sensible à la case
[Link] [Link] [Link]
▪ Utiliser uniquement des lettres, chiffres et caractères _ . –
▪ PAS d’espaces, accents et caractères spéciaux
&~#” '{([|`\^@)]}$*%!/;,?
▪ Le suffixe des noms de fichiers (.txt, . fasta, .fa, .fq etc.) est optionnel
Travailler avec les “jokers”
Métacaractères : *, [ ]
Qu’est ce un caractère “joker” ?
C’est un caractère qui peut être utilisé comme subtiitut de
plusieurs caractères ou classes de caractère dans une recherche
Peut être utilisé avec de nombreuses commandes linux
Comment utiliser les “jokers” ?
* N’importe quel caractère ou chaîne de caractères
[Link] [Link] [Link] [Link]
[Link] [Link] [Link] [Link]
Comment utiliser les “wildcards” ?
* N’importe quel caractère ou chaîne de caractère
[Link] [Link] [Link] [Link]
[Link] [Link] [Link] [Link]
ls *fastq
Signification des caractères spéciaux * [ ]
* N’importe quel caractère ou chaîne de caractère
[Link] [Link] [Link] [Link]
[Link] [Link] [Link] [Link]
ls *fastq
[Link] [Link] [Link]
[Link] [Link]
Comment utiliser les “jokers” ?
* N’importe quel caractère ou chaîne de caractère
[Link] [Link] [Link] [Link]
[Link] [Link] [Link] [Link]
ls KYVF*fastq
Comment utiliser les “jokers” ?
* N’importe quel caractère ou chaîne de caractère
[Link] [Link] [Link] [Link]
[Link] [Link] [Link] [Link]
ls KYVF*fastq
[Link] [Link]
[Link] [Link]
Comment utiliser les “jokers” ?
* N’importe quel caractère ou chaîne de caractères
[] Tous les caractères entre crochets
[Link] [Link] [Link] [Link]
[Link] [Link] [Link] [Link]
ls *.[sb]am
Comment utiliser les “jokers” ?
* N’importe quel caractère ou chaîne de caractère
[] Tous les caractères entre crochets
[Link] [Link] [Link] [Link]
[Link] [Link] [Link] [Link]
ls *.[sb]am = ls *.[!f]*
[Link] [Link]
[Link]
Practice
ls, *
Go to Practice 5 on our github
5
Commandes relative à
l’arborescence de fichiers
commande cd
Commande cd
cd pour se déplacer dans l’arborescence
Change Directory
cd nom_repertoire(chemin absolu ou relatif)
Commande cd
/
cd nom_repertoire(chemin absolu ou relatif)
home
granouill
Chemin absolu :
script data
[Link] fasta
[Link]
Commande cd
/
cd nom_repertoire(chemin absolu ou relatif)
home
granouill
Chemin absolu :
script data
cd /home/granouill/data/fasta
[Link] fasta
[Link]
Commande cd
/
cd nom_repertoire(chemin absolu ou relatif)
home
granouill
Chemin absolu :
script data
[Link] fasta
[Link]
Commande cd
/
cd nom_repertoire(chemin absolu ou relatif)
home
granouill
Chemin absolu :
script data
cd /home/granouill/script/
[Link] fasta
[Link]
Commande cd
/
cd nom_repertoire(chemin absolu ou relatif)
home
granouill
script data
[Link] fasta
Chemin relatif :
[Link]
Commande Se déplace dans
cd directory_name directory_name Retour au répertoire de
l’utilisateur courant home
cd home directory
cd .. le répertoire parent Remonte d’1 répertoire
cd ../.. ?
Remonte de 2 répertoires
Quelques commandes pour commencer
Arborescence linux
pwd Affiche le chemin absolu
ls Liste tous les fichiers/répertoires
cd rep_name Se déplace dans rep_name
mkdir rep_name Crée un répertoire
rm nom_fichier Supprime un fichier
cp fichier_source repertoire_cible Copie un fichier dans un répertoire
cp fichier_source nouveau_fichier Copie un fichier sous un nouveau nom
Practice
pwd, cd, ls
Go to Practice 6 on our github
6
Practice
mkdir, mv, ls, cp, rm
Go to Practice 7 on our github
7
Des commandes pour éditer
des fichiers et les manipuler
Commande cat
cat nom_fichier Affiche le contenu d’un fichier sans pagination
Commande less
less nom_fichier Affiche le contenu d’un fichier
<space> pour défiler
q pour quitter
/ suivi par le mot
less Data/Fasta/[Link]
Autres commandes utiles
head Affiche les premières lignes d’un fichier head –n 20 [Link]
(n=10, 10 lignes par défaut)
tail affiche les dernières lignes d’un fichier tail –n 5 [Link]
(n=10 par défaut)
wc Compter le nombre de lignes, mots ou wc [Link]
caractères d’un fichier wc –l [Link]
Practice
ls, head, tail, wc
Go to Practice 8 on our github
8
Commande grep
grep pour rechercher un motif dans une ligne
grep [options] motif [file1, … ]
Pour rechercher un motif, le mettre entre simple/double quote
=> ex : ‘gene’ ou « gene »
Commande grep
grep pour rechercher un motif dans une ligne
grep [options] motif [file1, … ]
Option Description
-i Recherche le motif sans tenir compte de la casse
-c Compte le nombre de lignes dans lesquelles le motif a été trouvées
-v Affiche seulement les lignes sans le motif
-l Affiche uniquement les noms de fichiers dans lesquels le motif a été
trouvé
Practice
wget, grep
Go to Practice 9 on our github
9
Commande sort
sort Trier une ou plusieurs colonnes d’un fichier tabulé
sort –k2 fileName sur la colonne 2 (tri alphanumérique)
sort –k2r fileName sur la colonne 2, décroissant
sort –k2g –k1r fileName sur la colonne 2 et 1
sort -t: -k3g fileName sur la colonne 3 (nombre), le délimitateur de
colonne est :
Commande cut
cut Sélection de colonnes/champs d’un fichier
cut -d separateurColonne -f fieldNumber fileName
cut –d “:” -f1,5 /etc/passwd
Sélection des champs 1 et 5 dans un fichier tabulé
dont les colonnes sont séparées par un :
Practice
makeblastdb, blastn
head, tail, wc, sort, cut
Go to Practice 10 on our github
10
Les entrées / sorties
pour sauvegarder la sortie d’une
commande dans un fichier
Ecrire la sortie d’une commande dans un fichier
La sortie d’une commande peut être écrite
Redirection
Action
dans un fichier avec les caractères :
>
>>
cut -d: -f1 /etc/passwd > [Link]
Ecrire la sortie d’une commande dans un fichier
cut -d: -f1 /etc/passwd > [Link]
Redirection Action
Command > file
● si le fichier n’existe pas : il sera créé
● si le fichier existe : efface le contenu
Command >> file
● si le fichier n’existe pas : il sera créé
● si le fichier existe : écrit à la fin du fichier
Practice
Go to Practice 11 on our github
2
Connecter des commandes ensemble
• La sortie d’une 1ère commande peut être envoyée
comme input d’une 2ème commande
Redirection
Action
• Pour connecter/combiner plusieurs commandes
ensemble dans la même ligne de commande
(sans fichier intermédiaire)
• Pipelines= workflow
cmd1 | cmd2 | cmd3
Connecter des commandes ensemble
cut -d: -f1 /etc/passwd
Root
troot
iroot
ctroot
//
Connecter des commandes ensemble
cut -d: -f1 /etc/passwd
Root
troot
iroot
ctroot
//
cut -d: -f1 /etc/passwd | sort
abate
adm
adroot
ais
#albar
alvaro-wis
anthony
apache
Connecter des commandes ensemble
cut -d: -f1 /etc/passwd
Root
troot
iroot
ctroot
//
cut -d: -f1 /etc/passwd | sort
abate
adm
adroot
ais
#albar
alvaro-wis
anthony
apache
cut -d: -f1 /etc/passwd | sort | head –n 2
Practice
Go to Practice 12 on our github
3
Formateurs itrop / South Green
● Christine Tranchant-Dubreuil
● Sebastien Ravel
● Alexis Dereeper
● Ndomassi Tando
● François Sabot
● Gautier Sarah
● Bruno Granouillac
LOGO CERAAS
Merci !
Le matériel pédagogique utilisé pour ces enseignements est mis à
disposition selon les termes de la licence Creative Commons
Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes
Conditions (BY-NC-SA) 4.0 International:
[Link]
Autres commandes utiles
Manipuler des fichiers compressés
Compresser des fichiers tar,gzip
tar –zcvf [Link] dirToCompress
gzip fileToCompress
Décompresser une archive gunzip, tar
gunzip [Link]
tar –xvf [Link]
tar -zxvf [Link]
Afficher le contenu d’une archive zcat
zmore [Link]
Rechercher une expression/motif dans une archive zgrep
zgrep ‘NM_000020’ [Link]
Renommer des fichiers
rename
Exemple Description
rename ‘s/.txt/.fasta/’ * rename the extension of all files
rename ‘y/a-z/A-Z/’ * rename files in uppercase
Attributs des fichiers / permission
Commande ls –l
$ ls –l filename
drwxrwrwx 3 user user 4096 2012-02-11 20:21 file_name
Permissions Proprio Groupe Taille Heure et date de la dernière modification
-Interprétation/Légendes des permissions
Type - : fichier normal
d : répertoire
l : lien symbolique
Attributs des fichiers / permission
ls –l command
Permissions
drwxrwrwx 3 user user 4096 2012-02-11 20:21 file_name
other
group 3 classes
user
3 types of permissions :
Permission File Directory
Read r Ouverture et Lecture Lister et copier les fichiers
Write w Modiier et supprimer Manipuler le contenu : copier, créer, modifier,
écraser
Execution x Executer le fichier Accès seulement au fichier pour l’exécuter
Attributs des fichiers / permission
commande pour la gestion des permissions : chmod
chmod <perm> file_name
Chaque permission = 1 valeue
R 4
W 2
X 1
none 0
Exemple
chmod 740 [Link] # Owner=rwx
Group=r–- Other=---
chmod 755 [Link] # Owner=rwx Group=r-
x Other=r-x
Visualiser et changer des droits
chmod, ls
Donner le nom du propriétaire, du groupe et les droits des fichiers contenus
dans le répertoire “~/Data/454-projet1/raw”
Changer les droits du fichier
Scripts/[Link] pour qu’il soit :
en lecture/écriture pour le groupe,
lecture/écriture/exécution
pour le propriétaire
et lecture au public
Performing basic text
transformations on a file
Sed command
Command sed
sed “s/Search/Replace/” file
Replace the SEARCH motif by the REPLACE one in FILE
Command sed
Some examples
Example Description
sed "s/ATTAAT/NN/" file Replace the FIRST
occurence of ATTAAT by NN in FILE
sed "s/ATTAAT/NN/g" file Replace ALL
file occurences of ATTAAT by NN in FILE
sed "s/attaat/NN/ig” file Replace ALL
occurences of ATTAAT by NN in FILE,
case insensitive
Practice
Go to Practice 6 on our github
6
Processing or analyzing text file
awk
Processing and Modifying a file
awk: manipulating a file line by line...
• AWK stand for ”Aho, Weinberger, Kernighan“, the 3 authors
• Programming language to easily manipulate tabular files
(BLAST, SAM, VCF...)
• Motif search, operation, actions...
Processing and Modifying a file
awk: manipulating a file line by line...
• For awk, the input file is tabulate
• awk can perfom computing on number and text chains
• awk can generate reporting following these manipulations
Processing and Modifying a file
Syntax : awk [-F] 'program' file
Option Description
-F To provide the type of field delimitator (tab in standard)
Processing and Modifying a file
Syntax : awk [-F] 'program' file
Option Description
-F To provide the type of field delimitator (tab in standard)
Predefined variables used by awk
Variable Description
$0 The whole line
NR Number of the read line
NF Umber of the fields in the line
Processing and Modifying a file
Helene 56 edu hcyr@[Link]
jean 32 ri jeanc@[Link]
julie 22 adm juliem@[Link]
michel 24 inf michel@[Link]
richard 25 inf rcaron@[Link]
File: [Link]
Processing and Modifying a file
Helene 56 edu hcyr@[Link]
jean 32 ri jeanc@[Link]
julie 22 adm juliem@[Link]
michel 24 inf michel@[Link]
richard 25 inf rcaron@[Link]
File: [Link]
awk '{print $0}’ [Link]
Helene 56 edu hcyr@[Link]
jean 32 ri jeanc@[Link] Print every line
julie 22 adm juliem@[Link]
michel 24 inf michel@[Link]
richard 25 inf rcaron@[Link]
Processing and Modifying a file
Helene 56 edu hcyr@[Link]
jean 32 ri jeanc@[Link]
julie 22 adm juliem@[Link]
michel 24 inf michel@[Link]
richard 25 inf rcaron@[Link]
File: [Link]
$awk '{print NR,$1,$2}’ [Link]
1 Helene 56
Print the line
2 jean 32
number, then the FIRST
3 julie 22 and SECOND fields
4 michel 24
5 richard 25
Processing and Modifying a file
Helene 56 edu hcyr@[Link]
jean 32 ri jeanc@[Link]
julie 22 adm juliem@[Link]
michel 24 inf michel@[Link]
richard 25 inf rcaron@[Link]
$awk ’{print $1,$2};
END { print NR « lines read »; }’ [Link]
Helene 56
Jean 32 Perform the previous
command then print the
Julie 22
number of lines read
Michel 24
Richard 25
5 lines read
Processing and Modifying a file
Helene 56 edu hcyr@[Link]
jean 32 ri jeanc@[Link]
julie 22 adm juliem@[Link]
michel 24 inf michel@[Link]
richard 25 inf rcaron@[Link]
$awk ’{print $1,$3; sum+=$2}
END { print « Age sum : », sum; }’ [Link]
Helene edu print for each line the 1st
jean ri and third fields, then sum
the 2nd and output the
julie adm sum at the end
michel inf
richard inf
Age sum : 159 120
Processing and Modifying a file
awk ’$2>24 && $2<50{ print $1, “ :”, $2; }’
[Link]
Helene : 56
jean : 32 Print only if higher than 20 AND lower than
50
richard : 25
Processing and Modifying a file
awk ’$3 == “inf" {print $0}’ [Link]
michel 24 inf michel@[Link]
richard 25 inf rcaron@[Link]
Practice
7 [Link] to Practice 7 on our github
[Link].i
o/trainings/linux/
linuxPracticeJedi/#practice-6