Retour au cours

59. Introduction à `awk` (Traitement de champs)

Les Bases de Linux : de Zéro à Héros du CLI

Traitement de données avancé

awk (nommé d'après ses développeurs Aho, Weinberger et Kernighan) est un langage de programmation conçu pour le balayage et le traitement de motifs, particulièrement excellent pour manipuler des données structurées (comme des tableaux ou des fichiers CSV).

Comment fonctionne awk

Il traite un fichier ligne par ligne et, pour chaque ligne, il considère les champs (colonnes) comme des variables, généralement délimitées par des espaces blancs.

  • $0 : Représente la ligne entière.
  • $1 : Représente le premier champ.
  • $2 : Représente le deuxième champ, et ainsi de suite.

Extraction de champs basique

Afficher le prénom et le nom d'une liste, en supposant qu'ils sont les premier et deuxième champs :

bash $ echo -e "John Doe\nJane Smith" | awk '{print $1, $2}' John Doe Jane Smith

Spécifier un séparateur de champ (-F)

Tout comme cut, awk peut utiliser un séparateur de champ différent (délimiteur).

Exemple : Extraire le nom d'utilisateur (Champ 1) et l'UID (Champ 3) de /etc/passwd (le délimiteur est :) :

bash $ awk -F ':' '{print "User: " $1, " UID: " $3}' /etc/passwd User: root UID: 0 User: daemon UID: 1 ...