Introduction à l’utilitaire awk

Introduction à l’utilitaire awk

Utilité

L’utilitaire awk recherche un ou plusieurs patterns dans un ou plusieurs fichiers et applique certaines actions sur les enregistrements sélectionnés.
Synopsis
awk [-Fc] –f program-file [file-list]
awk program [file-list]

Patterns

Expressions régulières, /regex/, avec ou sans opérateurs ~ (=) et !~ (!=)

exemples:
/tion/
enregistrements contenant la chaîne tion
$1 ~ /tion/
enregistrements dont le 1er champ contient tion
$3 !~ /tion/
enregistrements dont le 3e champ ne contient pas la chaîne tion
Opérateurs relationnels (fonctionnent sur les nombres ainsi que sur les lettres): <, <=, ==, !=, >= et >
exemples:
$1 > $2
enregistrements où la valeur 1er champ est supérieure à celle du 2e
“$4” == “alpha”
enregistrements dont le 4e champ est alpha
Patterns (suite)

Opérateurs booléens: || (ou) et && (et)

Exemple:
$3 >= 10 && $3 < 20 enregistrements où la valeur 3e champ est supérieure ou égale à 10 et inférieure à 20 Intervalles (spécifiés avec une virgule) exemple: /début/,/fin/ enregistrements inclus entre les bornes /début/ et /fin/. Les bornes sont incluses dans l’intervalle. Le traitement de l’intervalle est récurrent. Patterns (suite) Identificateurs uniques: BEGIN et END l’identificateur BEGIN permet d’effectuer une action avant de commencer le traitement des fichiers. l’identificateur END permet d’effectuer une action après que le traitement des fichiers soit complété. exemple: BEGIN { print “Début du traitement” } affiche la chaîne “Début du traitement” sur la sortie standard au lancement du programme, avant de commencer le traitement du/des fichier(s) Actions Action par défaut: print print affiche sur la sortie standard. il est possible de rediriger la sortie avec >, >> et |.
Il est possible de spécifier plusieurs actions sur une même ligne avec ; :
pattern { action; action; action; }
Les actions peuvent être composées d’opérations logiques et arithmétiques, de fonctions, de variables, de tableaux associatifs, de structures itératives et de structures conditionnelles.
exemple:

$cat total.awk
BEGIN { total = 0; dix = 0 }
{ total += $1 }
$1 == 10 { dix++ }
END { printf « Total: %d, Dix: %d\n »,\
total, dix }
$awk –f total.awk nombres.txt
Total: 98, Dix: 2
$

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *