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 [18/10/2012 05:02] smolski |
doc:programmation:awk [18/10/2012 07:38] smolski |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== awk ====== | ====== awk ====== | ||
- | (//non testé// - **smolski** 18/10/2012) Le retour sur le forum est ici : | + | (//testé// - **smolski** 18/10/2012) Le retour sur le forum est ici : |
- | * [[//url// | Lien vers le forum concernant ce tuto]] N'hésitez pas à y faire par de vos remarques, succès, améliorations ou échecs ! | + | * [[http://debian-facile.org/viewtopic.php?id=6057 | Lien vers le forum concernant ce tuto]] N'hésitez pas à y faire par de vos remarques, succès, améliorations ou échecs ! |
- | * Objet : awk - awk | + | * Objet : awk |
* Niveau requis : AVISÉ | * Niveau requis : AVISÉ | ||
- | * Commentaires : // Cet utilitaire a été créÉ dans le but de remplacer les commandes [[commande:grep]] et [[commande:sed]]. // | + | * Commentaires : // Cet utilitaire a été créé dans le but de remplacer les commandes [[commande:grep]] et [[commande:sed]]. // |
* Débutant, à savoir : | * Débutant, à savoir : | ||
[[manuel:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | [[manuel:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
Ligne 131: | Ligne 131: | ||
7 EMMA F 6</code> | 7 EMMA F 6</code> | ||
+ | ==== Pré et Post opérations ==== | ||
+ | |||
+ | awk offre des sections pré-traitement (BEGIN) et post-traitement (END) lors de l'analyse d'un fichier. La structure du script awk est : | ||
+ | <code bash> | ||
+ | cat | ||
+ | BEGIN { | ||
+ | action | ||
+ | } | ||
+ | |||
+ | /filter/,/filter/ { action } | ||
+ | |||
+ | { action} | ||
+ | |||
+ | END { | ||
+ | action | ||
+ | } | ||
+ | |||
+ | Les blocs BEGIN et END ne sont pas obligatoires. Il peut y avoir un bloc BEGIN sans bloc END, un bloc END sans bloc BEGIN, ou aucun de ces 2 blocs. | ||
+ | |||
+ | Des scripts bien plus complexes peuvent alors être écrits. Par exemple, extraire 2 colonnes en remplaçant les tabulations par des ";" et afficher le nombre de lignes à la fin : | ||
+ | |||
+ | shell> cat prog.awk | ||
+ | |||
+ | BEGIN { | ||
+ | FS=" " | ||
+ | OFS=";" | ||
+ | } | ||
+ | { | ||
+ | print $1, $3 | ||
+ | } | ||
+ | END { | ||
+ | printf "\nThe file has %d lines\n", NR | ||
+ | } | ||
+ | |||
+ | shell> nawk -f prog.awk file.txt | ||
+ | |||
+ | Nom;Age | ||
+ | ---------------------------------------; | ||
+ | CAMILLE;7 | ||
+ | CHLOE;12 | ||
+ | CLARA;11 | ||
+ | CLEMENT;7 | ||
+ | EMMA;6 | ||
+ | THEO;8 | ||
+ | |||
+ | The file has 8 lines | ||
==== Titre ==== | ==== Titre ==== | ||
+ | //À suivre...// **Jojo** ;-) |