Awk est un langage de manipulation de texte plein de fonctionnalités avec une syntaxe proche du C. Alors qu'il possède un ensemble impressionnant d'opérateurs et de fonctionnalités, nous n'en couvrirons que quelques-uns, les plus utiles pour l'écriture de scripts shell.
Awk casse chaque ligne d'entrée en champs. Par défaut, un champ est une chaîne de caractères consécutifs délimités par des espaces, bien qu'il existe des options pour changer le délimiteur. Awk analyse et opère sur chaque champ. Ceci rend awk idéal pour gérer des fichiers texte structurés, particulièrement des tableaux, des données organisées en ensembles cohérents, tels que des lignes et des colonnes.
Des guillemets forts (guillemets simples) et des accolades entourent les segments de code awk dans un script shell.
awk '{print $3}' $nomfichier # Affiche le champ #3 du fichier $nomfichier sur stdout. awk '{print $1 $5 $6}' $nomfichier # Affiche les champs #1, #5 et #6 du fichier $nomfichier. |
Nous venons juste de voir la commande awk print en action. Les seules autres fonctionnalités de awk que nous avons besoin de gérer ici sont des variables. Awk gère les variables de façon similaire aux scripts shell, quoiqu'avec un peu plus de flexibilité.
{ total += ${numero_colonne} } |
END { print total } |
Correspondant au END, il existe BEGIN, pour un bloc de code à exécuter avant que awk ne commence son travail sur son entrée.
Pour des exemples de awk à l'intérieur de scripts shell, jetez un oeil sur:
C'est tout ce que nous allons voir sur awk, mais il existe bien plus à apprendre. Voyez les références appropriées dans la Bibliographie.
Précédent | Sommaire | Suivant |
Sed | Niveau supérieur | Codes de sortie ayant une signification particulière |