logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Ceci est une ancienne révision du document !


awk-synthèse

  • Objet : tableaux récapitulatifs
  • Niveau requis :
  • Commentaires : Contexte d'utilisation du sujet du tuto.

Variables prédéfinies

Celles en mémoire dès le lancement de la commande

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”

Celles initialisées lors du traitement d'un ligne

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 :

$0Valeur 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.)
FNRIndice de l'enregistrement courant relatif au fichier en cours de traitement
FILENAME Nom du fichier en cours de traitement

Les fonctions prédéfinies

Les fonctions de traitement de chaînes

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 sLa 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îneLongueur de la chaîne passée en paramètre
match(s,r)Effectue un test de reconnaissance du motif r sur la chaîne sSi 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 tNombre 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 tNombre 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 ».

Les fonctions arithmétiques

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
utilisateurs/hypathie/tutos/awk-synthese.1407001098.txt.gz · Dernière modification: 02/08/2014 19:38 par Hypathie

Pied de page des forums

Propulsé par FluxBB