Sommaire

Solution 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                                   On  
short_open_tag ...