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 [27/10/2013 16:50]
smolski
doc:programmation:awk [27/10/2013 17:11]
smolski [Programmation]
Ligne 31: Ligne 31:
 Et rédigez(([[:​doc:​systeme:​cat]])) dedans cette liste ainsi : Et rédigez(([[:​doc:​systeme:​cat]])) dedans cette liste ainsi :
 <code user tp_awk1> <code user tp_awk1>
-cat >  file.txt <<EOS+cat >  file.txt <<EOF
 Nom             ​Genre ​          Age Nom             ​Genre ​          Age
 --------------------------------------- ---------------------------------------
Ligne 40: Ligne 40:
 EMMA            F               6 EMMA            F               6
 THEO            M               8 THEO            M               8
-EOS</​code>​+EOF</​code>​
  
 ==== Extraire des colonnes ==== ==== Extraire des colonnes ====
Ligne 133: Ligne 133:
 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''​ comme ici : 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''​ comme ici :
 <code user prog.awk>​ <code user prog.awk>​
-cat > prog.awk <<EOS+cat > prog.awk <<EOF
 /^CL/,/^E/ {  /^CL/,/^E/ { 
      print NR, \$0       print NR, \$0 
 } }
-EOS</​code>​+EOF</​code>​
  
 Puis interprété grâce à l'​option -f : Puis interprété grâce à l'​option -f :
Ligne 153: Ligne 153:
 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 user prog_awk>​ <code user prog_awk>​
-cat > prog.awk <<EOS+cat > prog.awk <<EOF
 /​^CL/,/​^E/ ​ /​^CL/,/​^E/ ​
 BEGIN { BEGIN {
Ligne 166: Ligne 166:
         action         action
 } }
-EOS</​code>​+EOF</​code>​
  
 Donne : Donne :
Ligne 180: Ligne 180:
 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 user prog_awk>​ <code user prog_awk>​
-cat > prog.awk <<EOS+cat > prog.awk <<EOF
 BEGIN {  BEGIN { 
         FS=" "         FS=" "
Ligne 191: Ligne 191:
         printf "\nThe file has %d lines\n",​ NR          printf "\nThe file has %d lines\n",​ NR 
 } }
-EOS</​code>​+EOF</​code>​
  
  
Ligne 298: Ligne 298:
 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 user prog_awk>​
-cat > prog.awk <<EOS+cat > prog.awk <<EOF
 function gentag(nom,​age) { function gentag(nom,​age) {
         tmp=tolower(substr(nom,​1,​3))         tmp=tolower(substr(nom,​1,​3))
Ligne 316: Ligne 316:
 print NR , "​lines"​ print NR , "​lines"​
 } }
-EOS+EOF
 </​code>​ </​code>​
  
Ligne 340: Ligne 340:
 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 user prog_awk>​
-cat > prog.awk <<EOS+cat > prog.awk <<EOF
 BEGIN { BEGIN {
         OFS=","​         OFS=","​
Ligne 354: Ligne 354:
         print \$1, ecole         print \$1, ecole
 } }
-EOS+EOF
 </​code>​ </​code>​
  
Ligne 373: Ligne 373:
 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 user prog_awk>​
-cat > prog.awk <<EOS+cat > prog.awk <<EOF
 NR <=2 { next } NR <=2 { next }
 { {
Ligne 384: Ligne 384:
         printf "​\n"​         printf "​\n"​
 } }
-EOS+EOF
 </​code>​ </​code>​
  
Ligne 401: Ligne 401:
 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 user prog_awk>​
-cat > prog.awk <<EOS+cat > prog.awk <<EOF
 NR <=2 { next } NR <=2 { next }
 { {
Ligne 410: Ligne 410:
         printf "​\n"​         printf "​\n"​
 } }
-EOS+EOF
 </​code>​ </​code>​
  
Ligne 432: Ligne 432:
 Calculer la moyenne d'âge des enfants par sexe : Calculer la moyenne d'âge des enfants par sexe :
 <code user prog_awk>​ <code user prog_awk>​
-cat > prog.awk <<EOS+cat > prog.awk <<EOF
  
         if ( NR <= 2 ) { next } # skip first 2 lines         if ( NR <= 2 ) { next } # skip first 2 lines
-        tab_age[$2]+=$3 +        tab_age[\$2]+=\$3 
-        tab_cpt[$2]+++        tab_cpt[\$2]++
 } }
 END {  END { 
Ligne 443: Ligne 443:
         }         }
 } }
-EOS+EOF
 </​code>​ </​code>​
  
doc/programmation/awk.txt · Dernière modification: 02/06/2015 18:44 par milou

Pied de page des forums

Propulsé par FluxBB