next up previous
Next: Exercices de programmation Perl Up: Examen Télécom 2 Unix Previous: Exercices de programmation KSH

Exercices de programmation AWK

N'oubliez pas de commenter vos scripts AWK.

Vérifier:

  1. Décrivez le script AWK qui affiche les lignes de plus de 80 caractères.\fbox{\textbf{1~pts}}

    ..

      
    #!/usr/bin/awk -f
    
    length($0)>80
    
    ..

  2. Décrivez le script AWK qui affiche les lignes qui contiennent exactement deux champs.\fbox{\textbf{1~pts}}

    ..

      
    #!/usr/bin/awk -f
    
    NF==2
    
    ..

  3. Décrivez le script AWK qui affiche le second champ de chaque ligne.\fbox{\textbf{1~pts}}

    ..

      
    #!/usr/bin/awk -f
    
    {print $2}
    
    ..

  4. Décrivez le script AWK qui affiche la liste des champs de chaque ligne dans un ordre inversé.\fbox{\textbf{1~pts}}

    ..

      
    #!/usr/bin/awk -f
    
    { 
        for (i=NF; i>0; i--) {printf "%s%s", $i, OFS}
        print ""
            }
    
    ..

  5. Donnez le script AWK qui permet de compter le nombre de lignes qui contiennent la chaîne "l2ti". \fbox{\textbf{1~pts}}

    ..

      
    #!/usr/bin/awk -f
    
    /l2ti/ {nb_toto++}
    
    END    {print "Nombre de lignes avec l2ti:", nb_toto}
    
    ..

  6. A l'aide des tableaux associatifs, donnez le script AWK qui affiche la fréquence des mots d'un texte.\fbox{\textbf{3~pts}}

    ..

      
    #!/usr/bin/awk -f
    # Affiche la féquence des mots dans un texte
    
    BEGIN { 
        FS="[^A-Za-z0-9_]*"              # séparateur de champs
    }                                    # retirant la ponctuation
    
    {
        $0 = tolower($0);                # tout en minuscules
        for (i = 1; i <= NF; i++)        # integre les champs sauf
            if ($i != "")                # s'ils sont vides
                tab_freq[$i]++           # dans le tableau associatif tab_freq
    }
    
    END {                                # parcours le tableau tab_freq
        for (mot in tab_freq)
            printf "%s\t%d\n", mot, tab_freq[mot]
    }
    
    ..


next up previous
Next: Exercices de programmation Perl Up: Examen Télécom 2 Unix Previous: Exercices de programmation KSH
Olivier Fourmaux 2003-07-10