Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ceci est une ancienne révision du document !
Voici les variables internes du langage awk présente en mémoire dès le lancement de la commande.
Variables | Significations | Valeurs par défaut |
---|---|---|
ARGC | Nombre d'arguments de la ligne de commande | - |
ARGV | Tableau des arguments de la ligne de commande | - |
FS | Séparateur de champs en entrée | “ “ |
NF | Nombre de champs de l'enregistrement courant | - |
OFMT | Format de sortie des nombres | ”%.6g” |
OFS | Séparateur de champs pour la sortie | “ “ |
ORS | Séparateur d'enregistrement pour la sortie | “\n” |
RLENGTH | Longueur de la chaîne trouvée | - |
RS | Séparateur d'enregistrement en entrée | “\n” |
RSTART | Positionnée par la fonction match :début de la chaîne trouvée | - |
SUBSEP | Séparateur des éléments dans un tableau | “\034” |
Les enregistrements sont traités successivement.
L'enregistrement est automatiquement découpé en champs et un certain nombre de variables internes awk sont alors initialisées.
Les voici :
$0 | Valeur de l'enregistrement courant |
FNR | Nombre d'enregistrements du fichier |
$1 $2 … $NF | $1 : champ n°1 $2 champ n°2 $NF : valeur du dernier champ |
NR | Indice de l'enregistrement courant (NR vaut 1 quand la première ligne est lu, et s'incrémente à chaque enregistrement.) |
FNR | Indice de l'enregistrement courant relatif au fichier en cours de traitement |
FILENAME | Nom du fichier en cours de traitement |
Les fonctions de traitement de chaînes de caractères proposées par awk sont regroupées dans le tableau suivant :
Nom de la fonction et arguments | Description du travail effectué | Valeur renvoyée |
---|---|---|
Recherche et extraction de sous chaînes | ||
substr(s,p) | Extrait la fin de la chaîne s commençant à la position p | La sous chaîne en question |
substr(s,p,n) | Extrait la sous chaîne de s de longueur n et commençant à la position p. Cette fonction est souvent utilisée pour obtenir les n premiers caractères d'une chaîne en fixant p à 1. | La sous chaîne en question. |
index(s,t) | Recherche la chaîne t dans la chaîne s | La position de la première occurrence de t dans s, 0 si t n'appartient pas à s |
Fonctions à usage général | ||
length(s) | Longueur d'une chaîne | Longueur de la chaîne passée en paramètre |
match(s,r) | Effectue un test de reconnaissance du motif r sur la chaîne s | Si la chaîne s est reconnue par le motif r, la position du premier caractère associé à la reconnaissance est renvoyée. En cas d'échec, la fonction renvoie 0. En outre les variables prédéfinies RSTART et RLENGTH sont respectivement associées à la position du premier caractère de reconnaissance (identique à la valeur de retour) et à la longueur de la partie de s reconnue par le motif r. |
sprintf(format,…) | Effectue le même travail que la fonction du même nom en C i.e. créée une chaîne sur le modèle format en substituant les caractères spéciaux par les argument à la suite format en suivant le même formalisme que printf | La chaîne issue des substitutions. |
Fonctions de substitution | ||
sub(r,s) | Remplace la première occurrence de r par s à l'intérieur du tampon de travail courant ($0) | Nombre de substitutions effectuées, c'est à dire 0 ou 1. |
sub(r,s,t) | Remplace la première occurrence de r par s à l'intérieur de la chaîne t | Nombre de substitutions effectuées, c'est à dire 0 ou 1. |
gsub(r,s) | Remplace toutes les occurrences de r par s à l'intérieur du tampon de travail courant ($0) | Nombre de substitutions effectuées, de 0 à n. |
gsub(r,s,t) | Remplace toutes les occurrences de r par s à l'intérieur de la chaîne t | Nombre de substitutions effectuées, de 0 à n. |
Chaînes et tableaux | ||
split(s,tab) | Découpe la chaîne s en champs (respectivement au(x) séparateur(s) indiqués par la variable prédéfinie FS) et place ces derniers dans le tableau tab. | Nombre de champs obtenus |
split(s,tab,sep) | Découpe la chaîne s en champs (respectivement au(x) séparateur(s) indiqués par sep) et place ces derniers dans le tableau tab. | Nombre de champs obtenus |
Attention aux faux amis ! substr ne signifie pas substitution (c'est le travail de sub et gsub) mais « extraction de sous chaîne ».
Le langage de programmation awk propose en standard la plupart des fonctions arithmétiques communes.
Elles sont répertoriées dans le tableau suivant :
atan2(y,x) | Renvoie l'angle formé par x et y, soit, grosso modo, l'arc tangente de y/x |
cos(x) | Cosinus de x |
sin(x) | Sinus de x |
log(x) | Logarithme népérien de x |
exp(x) | Exponentielle de x |
sqrt(x) | Racine carrée de x |
int(x) | Partie entière de x |
rand(x) | Génère un nombre pseudo aléatoire x, tel que 0 ⇐x < 1 |
srand(x) | Fixe la racine du générateur à x |