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 ...