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
Prochaine révision Les deux révisions suivantes
doc:programmation:awk [18/10/2012 07:38]
smolski
doc:programmation:awk [18/10/2012 08:39]
smolski
Ligne 115: Ligne 115:
  
 ==== Scripts awk ==== ==== Scripts awk ====
 +
 +<note warning>​**ATTENTION** ! Vérifiez toujours l'​écriture de chaque script donné ici avant de l'​appliquer !</​note>​
  
 awk a été utilisé précédemment en mode lignes de commande. Lorsque le programme awk devient complexe, ce dernier peut être stocké dans un fichier : awk a été utilisé précédemment en mode lignes de commande. Lorsque le programme awk devient complexe, ce dernier peut être stocké dans un fichier :
    ​prog.awk    ​prog.awk
 <code bash> <code bash>
-cat > prog.awk+cat > prog.awk ​<<EOS
 /^CL/,/^E/ {  /^CL/,/^E/ { 
      print NR, $0       print NR, $0 
-}</​code>​+} 
 +EOS</​code>​
  
 Puis interprété grâce à l'​option -f : Puis interprété grâce à l'​option -f :
Ligne 132: Ligne 135:
  
 ==== Pré et Post opérations ==== ==== Pré et Post opérations ====
 +
 +<note warning>​**ATTENTION** ! Vérifiez toujours l'​écriture de chaque script donné ici avant de l'​appliquer !</​note>​
  
 awk offre des sections pré-traitement (BEGIN) et post-traitement (END) lors de l'​analyse d'un fichier. La structure du script awk est : 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> <code bash>
-cat +cat > prog.awk <<​EOS 
 +/​^CL/,/​^E/ ​
 BEGIN { BEGIN {
         action         action
Ligne 147: Ligne 153:
         action         action
 } }
 +EOS</​code>​
 +
 +Donne :
 +<code bash>
 +awk -f prog.awk file.txt ​
 +CLARA           ​F ​              11
 +CLEMENT ​        ​M ​              7
 +EMMA            F               ​6</​code>​
  
 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.
  
 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 : 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 :
- +<code bash> 
-shell> cat prog.awk +cat prog.awk ​<<EOS
 BEGIN {  BEGIN { 
         FS=" "         FS=" "
Ligne 164: Ligne 177:
         printf "\nThe file has %d lines\n",​ NR          printf "\nThe file has %d lines\n",​ NR 
 } }
 +EOS</​code>​
  
-shellnawk -f prog.awk file.txt+ 
 +<code bash> 
 +awk -f prog.awk file.txt
  
 Nom;Age Nom;Age
Ligne 176: Ligne 192:
 THEO;8 THEO;8
  
-The file has 8 lines  +The file has 8 lines </​code>​ 
-==== Titre ====+ 
 +<note warning>​**ATTENTION** ! Vérifiez toujours l'​écriture de chaque script donné ici avant de l'​appliquer !</​note>​ 
 + 
 + 
 +===== Fonctions ​===== 
 + 
 +Le parseur awk offre beaucoup de fonctions internes très utiles pour traiter les données. \\ 
 +Consulter les manuels de l'​utilitaire awk pour la liste complète des fonctions internes, en voici une liste partielle : 
 + 
 +==== int ==== 
 + 
 +Convertir une valeur en entier avec la fonction **int** : 
 +<code bash> 
 +awk '/​CHLOE/​ { print $3, int($3/​5)}'​ file.txt 
 +12 2</​code>​ 
 + 
 + 
 + 
  
 //À suivre...// **Jojo** ;-) //À suivre...// **Jojo** ;-)
doc/programmation/awk.txt · Dernière modification: 02/06/2015 18:44 par milou

Pied de page des forums

Propulsé par FluxBB