Solutions du chapitre Le langage de programmation awk

1. awk en ligne de commande

a. Exercice 1 : awk et autres filtres

Faire afficher les noms des fichiers texte du répertoire /etc.

# Réalisé sous Linux 
$ cd /etc 
$ file * | grep text | awk '{print $1}' | sed 's/:$//' 
adjtime 
aliases 
asound.conf 
auto.master 
auto.misc 
. . . 

b. Exercice 2 : critères de sélection

1.

Dans votre répertoire courant, afficher les caractéristiques des fichiers dont le nom commence par un point (uniquement ceux-là).

$ ls -la | awk '$9 ~ /ˆ\./ {print}' 

2.

Dans votre répertoire courant, afficher les noms de fichiers commençant par un point, sauf . et ...

$ ls -a | awk '/ˆ\.[ˆ.]/ {print}' 

c. Exercice 3 : critères de sélection, affichage de champs, sections BEGIN et END

À partir du fichier php.ini fourni :

1.

Faire afficher les lignes qui ne commencent pas par ";" et qui se terminent par On ou Off.

$ awk '/ˆ[ˆ;].*(On|Off)$/ { print }' php.ini  
engine = On 
short_open_tag = Off 
asp_tags = Off 
zlib.output_compression = Off 
implicit_flush = Off 

2.

Améliorer l’affichage.

$ awk -F '=' '/ˆ[ˆ;].*(On|Off)$/ { printf("%-40s%-10s\n",$1,$2) 
}' php.ini  
engine                                  ...
Pour consulter la suite, découvrez le livre suivant :
couv_EI6PRO.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Solutions du chapitre La commande sed
Suivant
Caractères spéciaux du shell