Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:programmation:awk [27/10/2013 18:04] captnfab [Exercices] |
doc:programmation:awk [27/10/2013 18:22] smolski [awk] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== awk ====== | ====== awk ====== | ||
- | (//testé// - **smolski** 18/10/2012) Le retour sur le forum est ici : | ||
- | * [[http://debian-facile.org/viewtopic.php?id=6057 | Lien vers le forum concernant ce tuto]] N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs ! | ||
* Objet : awk | * Objet : awk | ||
* Niveau requis : AVISÉ | * Niveau requis : AVISÉ | ||
Ligne 9: | Ligne 7: | ||
[[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
* Création par **smolski** 18/10/2012) | * Création par **smolski** 18/10/2012) | ||
- | * Testé par **smolski** le 18/10/2012) | + | * Testé par **smolski** le 28/10/2013) |
* Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=6057 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=6057 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
Ligne 25: | Ligne 23: | ||
===== Exercices ===== | ===== Exercices ===== | ||
- | Créez((Vous pouvez faire cela avec votre éditeur de texte favoris, voire avec [[:doc:systeme:cat]] ou simplement en téléchargeant la liste.)) le fichier ''file.txt'' contenant la liste suivante : | + | Créez((Vous pouvez faire cela avec votre éditeur de texte favori, voire avec [[:doc:systeme:cat]] ou simplement en téléchargeant la liste.)) le fichier ''file.txt'' contenant la liste suivante : |
<code raw file.txt> | <code raw file.txt> | ||
Nom Genre Age | Nom Genre Age | ||
Ligne 290: | Ligne 288: | ||
La possibilité de créer des fonctions utilisateur est une des fonctionnalités les plus importantes de l'utilitaire awk. Les fonctions sont définies avec le mot clé **function**. | La possibilité de créer des fonctions utilisateur est une des fonctionnalités les plus importantes de l'utilitaire awk. Les fonctions sont définies avec le mot clé **function**. | ||
- | <code user prog_awk> | + | <code awk prog.awk> |
function gentag(nom,age) { | function gentag(nom,age) { | ||
tmp=tolower(substr(nom,1,3)) | tmp=tolower(substr(nom,1,3)) | ||
Ligne 330: | Ligne 328: | ||
Les enfants sont ils en primaire ou au collège avec if() {} else {} ? | Les enfants sont ils en primaire ou au collège avec if() {} else {} ? | ||
- | <code user prog_awk> | + | <code awk prog.awk> |
BEGIN { | BEGIN { | ||
OFS="," | OFS="," | ||
Ligne 356: | Ligne 354: | ||
THEO,primaire</code> | THEO,primaire</code> | ||
- | Remarquer la façon dont l'entête est écartée : NR <=2 { next } | + | <note tip>Remarquer la façon dont l'entête est écartée : NR <=2 { next }</note> |
==== Boucles ==== | ==== Boucles ==== | ||
Remplacer l'âge de l'enfant par un nombre de points avec while() {}. | Remplacer l'âge de l'enfant par un nombre de points avec while() {}. | ||
- | <code user prog_awk> | + | <code awk prog.awk> |
NR <=2 { next } | NR <=2 { next } | ||
{ | { | ||
Ligne 387: | Ligne 385: | ||
Remplacer l'âge de l'enfant par un nombre de points avec for (i= ; i< ; i++ ) { }. | Remplacer l'âge de l'enfant par un nombre de points avec for (i= ; i< ; i++ ) { }. | ||
- | <code user prog_awk> | + | <code awk prog.awk> |
NR <=2 { next } | NR <=2 { next } | ||
{ | { | ||
Ligne 416: | Ligne 414: | ||
Calculer la moyenne d'âge des enfants par sexe : | Calculer la moyenne d'âge des enfants par sexe : | ||
- | <code user prog_awk> | + | <code awk prog.awk> |
{ | { | ||
if ( NR <= 2 ) { next } # skip first 2 lines | if ( NR <= 2 ) { next } # skip first 2 lines | ||
Ligne 435: | Ligne 433: | ||
M : Moy : 7 ans nb : 3</code> | M : Moy : 7 ans nb : 3</code> | ||
- | Remarquer comment les 2 tableaux sont remplis et traités à la fin. | + | <note tip>Remarquer comment les 2 tableaux sont remplis et traités à la fin.</note> |