logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:programmation:awk [28/10/2013 10:31]
captnfab [awk]
doc:programmation:awk [02/06/2015 18:44] (Version actuelle)
milou [Programmation]
Ligne 2: Ligne 2:
  
   * Objet : awk   * Objet : awk
-  * Niveau requis : {{tag>​avisé}}+  * Niveau requis : {{tag>débutant ​avisé}}
   * Commentaires : // Cet utilitaire a été créé dans le but de remplacer les commandes [[:​doc:​systeme:​grep]] et [[:​doc:​systeme:​sed]]. //   * Commentaires : // Cet utilitaire a été créé dans le but de remplacer les commandes [[:​doc:​systeme:​grep]] et [[:​doc:​systeme:​sed]]. //
-  * Suivi : {{tag>​à-compléter}} 
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
-    ​* Création par **smolski** 18/​10/​2012) +  * Suivi : {{tag>​}} 
-    * Testé par **smolski** le 28/​10/​2013) +    ​* Création par [[user>smolski]] 18/​10/​2012) 
-    * Testé par **MicP** le 28/10/2013)+    * Testé par **[[user>smolski]]** le 28/​10/​2013) 
 +    * Testé par **[[user>MicP]]** 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 !)) 
  
-=== Nota === 
- 
-Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! 
  
 ===== Introduction ===== ===== Introduction =====
Ligne 41: Ligne 38:
 <code user> <code user>
 awk '{ print $1, $2 }' file.txt</​code>​ awk '{ print $1, $2 }' file.txt</​code>​
-<code>+<file config retour de la commande
 Nom Genre Nom Genre
 --------------------------------------- ​ --------------------------------------- ​
Ligne 49: Ligne 46:
 CLEMENT M CLEMENT M
 EMMA F EMMA F
-THEO M</code>+THEO M</file>
  
 <note pip> <note pip>
Ligne 69: Ligne 66:
 <code user> <code user>
 awk '/​CAMILLE/​ { print $1, $3, $2 }' file.txt</​code>​ awk '/​CAMILLE/​ { print $1, $3, $2 }' file.txt</​code>​
-<code+<file config retour de la commande>  
-CAMILLE 7 M</code>+CAMILLE 7 M</file>
  
 **Nota** : \\ **Nota** : \\
Ligne 78: Ligne 75:
 <code user> <code user>
 awk '/​^C.*[AO]/​ { print $1, $3, $2 }' file.txt</​code>​ awk '/​^C.*[AO]/​ { print $1, $3, $2 }' file.txt</​code>​
-<code>+<file config retour de la commande
 CAMILLE 7 M CAMILLE 7 M
 CHLOE 12 F CHLOE 12 F
-CLARA 11 F</code>+CLARA 11 F</file>
  
 awk est également très utile et puissant pour gérer des filtres sur des paragraphes. \\ awk est également très utile et puissant pour gérer des filtres sur des paragraphes. \\
Ligne 87: Ligne 84:
 <code user> <code user>
 awk '/​^CL/,/​^E/​ { print $0 }' file.txt</​code>​ awk '/​^CL/,/​^E/​ { print $0 }' file.txt</​code>​
-<code>+<file config retour de la commande
 CLARA F 11 CLARA F 11
 CLEMENT M 7 CLEMENT M 7
-EMMA F 6</code>+EMMA F 6</file>
  
 ==== Variables awk ==== ==== Variables awk ====
Ligne 103: Ligne 100:
 <code user> <code user>
 awk '{ print NR, NF, $0 }' file.txt</​code>​ awk '{ print NR, NF, $0 }' file.txt</​code>​
-<code>+<file config retour de la commande
 1 3 Nom         ​Genre ​          Age 1 3 Nom         ​Genre ​          Age
 2 1 --------------------------------------- 2 1 ---------------------------------------
Ligne 111: Ligne 108:
 6 3 CLEMENT ​            ​M ​              7 6 3 CLEMENT ​            ​M ​              7
 7 3 EMMA                F               6 7 3 EMMA                F               6
-8 3 THEO                M               ​8</​code>+8 3 THEO                M               ​8</​file>
  
 === Variable FS OFS === === Variable FS OFS ===
Ligne 119: Ligne 116:
 <code user> <code user>
 awk '/​CAMILLE/​ { OFS=","​ ; print $2,$1 }' file.txt</​code>​ awk '/​CAMILLE/​ { OFS=","​ ; print $2,$1 }' file.txt</​code>​
-<code+<file config retour de la commande>  
-M,​CAMILLE</​code>+M,​CAMILLE</​file>
  
 <note tip>À noter le caractère ";"​ pour séparer les instructions dans la même ligne et la façon dont on assigne une valeur à une variable (OFS=","​).</​note>​ <note tip>À noter le caractère ";"​ pour séparer les instructions dans la même ligne et la façon dont on assigne une valeur à une variable (OFS=","​).</​note>​
Ligne 136: Ligne 133:
 <code user> <code user>
 awk -f prog.awk file.txt</​code>​ awk -f prog.awk file.txt</​code>​
-<code>+<file config retour de la commande
 5 CLARA F 11 5 CLARA F 11
 6 CLEMENT M 7 6 CLEMENT M 7
-7 EMMA F 6</code>+7 EMMA F 6</file>
  
 ==== Pré et Post opérations ==== ==== Pré et Post opérations ====
Ligne 162: Ligne 159:
 <code user> <code user>
 awk -f prog.awk file.txt</​code>​ awk -f prog.awk file.txt</​code>​
-<code>+<file config retour de la commande
 CLARA           ​F ​              11 CLARA           ​F ​              11
 CLEMENT ​        ​M ​              7 CLEMENT ​        ​M ​              7
-EMMA            F               ​6</​code>+EMMA            F               ​6</​file>
  
 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. 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.
Ligne 186: Ligne 183:
 <code user> <code user>
 awk -f prog.awk file.txt</​code>​ awk -f prog.awk file.txt</​code>​
-<code>+<file config retour de la commande
 Nom;Age Nom;Age
 ---------------------------------------;​ ---------------------------------------;​
Ligne 196: Ligne 193:
 THEO;8 THEO;8
  
-The file has 8 lines </code>+The file has 8 lines </file>
  
 <note warning>​**ATTENTION** ! Vérifiez toujours l'​écriture de chaque script donné ici avant de l'​appliquer ! //Bis.// :​-P</​note>​ <note warning>​**ATTENTION** ! Vérifiez toujours l'​écriture de chaque script donné ici avant de l'​appliquer ! //Bis.// :​-P</​note>​
Ligne 211: Ligne 208:
 <code user> <code user>
 awk '/​THEO/​ { print $1, tolower($1) }' file.txt</​code>​ awk '/​THEO/​ { print $1, tolower($1) }' file.txt</​code>​
-<code+<file config retour de la commande>  
-THEO theo</code>+THEO theo</file>
  
 ==== int ==== ==== int ====
Ligne 219: Ligne 216:
 <code user> <code user>
 awk '/​CHLOE/​ { print $3, int($3/​5)}'​ file.txt</​code>​ awk '/​CHLOE/​ { print $3, int($3/​5)}'​ file.txt</​code>​
-<code+<file config retour de la commande>  
-12 2</code>+12 2</file>
  
 ==== printf ==== ==== printf ====
Ligne 226: Ligne 223:
 La fonction printf avec awk fonctionne comme la fonction printf en C afin de formater la sortie : La fonction printf avec awk fonctionne comme la fonction printf en C afin de formater la sortie :
 <code user> <code user>
-awk 'NR > 2 { printf "%10s %02d %-10s\n",​ $1,$3, $1}' file.txt +awk 'NR > 2 { printf "%10s %02d %-10s\n",​ $1,$3, $1}' file.txt</​code>​ 
 +<file config retour de la commande> ​
    ​CAMILLE 07 CAMILLE ​      ​CAMILLE 07 CAMILLE ​  
      CHLOE 12 CHLOE           CHLOE 12 CHLOE     
Ligne 233: Ligne 230:
    ​CLEMENT 07 CLEMENT ​      ​CLEMENT 07 CLEMENT ​  
       EMMA 06 EMMA      ​       EMMA 06 EMMA      ​
-      THEO 08 THEO </code>+      THEO 08 THEO </file>
  
 ==== length ==== ==== length ====
Ligne 240: Ligne 237:
 <code user> <code user>
 awk '/​CLEM/​ { print $1, length($1) }' file.txt</​code>​ awk '/​CLEM/​ { print $1, length($1) }' file.txt</​code>​
-<code+<file config retour de la commande>  
-CLEMENT 7</code>+CLEMENT 7</file>
  
 ==== match ==== ==== match ====
Ligne 248: Ligne 245:
 <code user> <code user>
 awk 'NR >2 { print $1, match($1,"​A"​)}'​ file.txt</​code>​ awk 'NR >2 { print $1, match($1,"​A"​)}'​ file.txt</​code>​
-<code>+<file config retour de la commande
 CAMILLE 2 CAMILLE 2
 CHLOE 0 CHLOE 0
Ligne 254: Ligne 251:
 CLEMENT 0 CLEMENT 0
 EMMA 4 EMMA 4
-THEO 0</code>+THEO 0</file>
  
 ==== gsub ==== ==== gsub ====
Ligne 261: Ligne 258:
 <code user> <code user>
 awk 'NR >2 { gsub("​A","​_",​$1) ; print $1 }' file.txt</​code>​ awk 'NR >2 { gsub("​A","​_",​$1) ; print $1 }' file.txt</​code>​
-<code>+<file config retour de la commande
 C_MILLE C_MILLE
 CHLOE CHLOE
Ligne 267: Ligne 264:
 CLEMENT CLEMENT
 EMM_ EMM_
-THEO</code>+THEO</file>
  
 ==== substr ==== ==== substr ====
Ligne 274: Ligne 271:
 <code user> <code user>
 awk '{ print $1, substr($1,​2,​3) }' file.txt</​code>​ awk '{ print $1, substr($1,​2,​3) }' file.txt</​code>​
-<code>+<file config retour de la commande
 Nom om Nom om
 --------------------------------------- --- --------------------------------------- ---
Ligne 282: Ligne 279:
 CLEMENT LEM CLEMENT LEM
 EMMA MMA EMMA MMA
-THEO HEO</code>+THEO HEO</file>
  
 ==== Fonctions utilisateur ==== ==== Fonctions utilisateur ====
Ligne 309: Ligne 306:
 <code user> <code user>
 awk -f prog.awk file.txt</​code>​ awk -f prog.awk file.txt</​code>​
-<code>+<file config retour de la commande
 Nom;​Age;​nom_Age Nom;​Age;​nom_Age
 ---------------------------------------;;​---_ ---------------------------------------;;​---_
Ligne 318: Ligne 315:
 EMMA;​6;​emm_6 EMMA;​6;​emm_6
 THEO;​8;​the_8 THEO;​8;​the_8
-8;​lines</​code>+8;​lines</​file>
  
 ===== Programmation ===== ===== Programmation =====
Ligne 345: Ligne 342:
 <code user> <code user>
 awk -f prog.awk file.txt</​code>​ awk -f prog.awk file.txt</​code>​
-<code>+<file config retour de la commande
 CAMILLE,​primaire CAMILLE,​primaire
 CHLOE,​college CHLOE,​college
Ligne 351: Ligne 348:
 CLEMENT,​primaire CLEMENT,​primaire
 EMMA,​primaire EMMA,​primaire
-THEO,​primaire</​code>+THEO,​primaire</​file>
  
 <note tip>​Remarquer la façon dont l'​entête est écartée : NR <=2 { next }</​note>​ <note tip>​Remarquer la façon dont l'​entête est écartée : NR <=2 { next }</​note>​
Ligne 373: Ligne 370:
 <code user> <code user>
 awk -f prog.awk file.txt</​code>​ awk -f prog.awk file.txt</​code>​
-<code>+<file config retour de la commande
 CAMILLE ​  ​....... CAMILLE ​  ​.......
 CHLOE     ​............ CHLOE     ​............
Ligne 379: Ligne 376:
 CLEMENT ​  ​....... CLEMENT ​  ​.......
 EMMA      ...... EMMA      ......
-THEO      ........</​code>+THEO      ........</​file>
  
 ==== Itérations ==== ==== Itérations ====
Ligne 397: Ligne 394:
 <code user> <code user>
 awk -f prog.awk file.txt</​code>​ awk -f prog.awk file.txt</​code>​
-<code>+<file config retour de la commande
 CAMILLE ​  ​....... CAMILLE ​  ​.......
 CHLOE     ​............ CHLOE     ​............
Ligne 403: Ligne 400:
 CLEMENT ​  ​....... CLEMENT ​  ​.......
 EMMA      ...... EMMA      ......
-THEO      ........</​code>+THEO      ........</​file>
  
 ==== Tableaux (Arrays) ==== ==== Tableaux (Arrays) ====
Ligne 428: Ligne 425:
 <code user> <code user>
 awk -f prog.awk file.txt</​code>​ awk -f prog.awk file.txt</​code>​
-<code>+<file config retour de la commande
 F : Moy : 9 ans nb : 3 F : Moy : 9 ans nb : 3
-M : Moy : 7 ans nb : 3</code>+M : Moy : 7 ans nb : 3</file>
  
 <note tip>​Remarquer comment les 2 tableaux sont remplis et traités à la fin.</​note>​ <note tip>​Remarquer comment les 2 tableaux sont remplis et traités à la fin.</​note>​
doc/programmation/awk.1382952711.txt.gz · Dernière modification: 28/10/2013 10:31 par captnfab

Pied de page des forums

Propulsé par FluxBB