diff --git a/fr-fr/awk-fr.html.markdown b/fr-fr/awk-fr.html.markdown
index 14780c93..98f2b29d 100644
--- a/fr-fr/awk-fr.html.markdown
+++ b/fr-fr/awk-fr.html.markdown
@@ -10,13 +10,19 @@ lang: fr-fr
---
-AWK est un outil standard présent dans chaque système UNIX conforme aux normes POSIX.
-C’est un outil en ligne de commande qui ressemble au Perl et qui est excellent dans les tâches de traitement de fichiers texte.
-Vous pouvez l’appeler à partir d’un script shell, ou l’utiliser comme un langage de script autonome.
+AWK est un outil standard présent dans chaque système UNIX conforme aux normes
+POSIX. C’est un outil en ligne de commande qui ressemble au Perl et qui est
+excellent dans les tâches de traitement de fichiers texte.
+Vous pouvez l’appeler à partir d’un script shell, ou l’utiliser comme un langage
+de script autonome.
Pourquoi utiliser AWK au lieu du langage Perl ?
-Principalement, car AWK fait partie d'UNIX et est donc présent par défaut sur une très grande partie des systèmes d'exploitation UNIX et Linux.
-AWK est aussi plus facile à lire que le langage Perl ; et est l'outil idéal pour ce qui concerne le traitement de texte simple. Notamment le traitement de ceux qui necéssitent de lire des fichiers ligne par ligne ; chaque ligne comportant des champs séparés par des délimiteur.
+Principalement, car AWK fait partie d'UNIX et est donc présent par défaut sur
+une très grande partie des systèmes d'exploitation UNIX et Linux.
+AWK est aussi plus facile à lire que le langage Perl ; et est l'outil idéal pour
+ce qui concerne le traitement de texte simple. Notamment le traitement de ceux
+qui nécessitent de lire des fichiers ligne par ligne ; chaque ligne comportant
+des champs séparés par des délimiteur.
```awk
@@ -30,17 +36,25 @@ règle1 { action; }
règle2 { action; }
# AWK lit et analyse automatiquement chaque ligne de chaque fichier fourni.
-# Chaque ligne est divisée par un délimiteur FS qui est par défaut l'espace (plusieurs espaces ou une tabulation comptent pour un espace). Ce délimiteur peut être changer grâce à l'option -F ou être renseigné au début d'un bloc (exemple: FS = " ").
+# Chaque ligne est divisée par un délimiteur FS qui est par défaut l'espace
+# (plusieurs espaces ou une tabulation comptent pour un espace). Ce délimiteur
+# peut être changer grâce à l'option -F ou être renseigné au début d'un bloc
+# (exemple: FS = " ").
-# BEGIN est une règle spécifique exécutée au début du programme. C'est à cet endroit que vous mettrez tout le code à exécuter avant de traiter les fichiers texte. Si vous ne disposez pas de fichiers texte, considérez BEGIN comme le point d’entrée principal du script.
-# A l'opposé de BEGIN, il existe la règle END. Cette règle est présente après chaque fin de fichier (EOF : End Of File).
+# BEGIN est une règle spécifique exécutée au début du programme. C'est à cet
+# endroit que vous mettrez tout le code à exécuter avant de traiter les fichiers
+# texte. Si vous ne disposez pas de fichiers texte, considérez BEGIN comme le
+# point d’entrée principal du script.
+# A l'opposé de BEGIN, il existe la règle END. Cette règle est présente après
+#chaque fin de fichier (EOF : End Of File).
BEGIN {
# Les variables sont globales. Pas besoin de les déclarer.
count = 0;
- # les opérateurs sont identiques au langage C et aux langages similaires (exemple: C#, C++)
+ # les opérateurs sont identiques au langage C et aux langages similaires
+ # (telsque C#, C++, etc.)
a = count + 1; # addition
b = count - 1; # soustraction
c = count * 1; # multiplication
@@ -74,7 +88,8 @@ BEGIN {
# Les blocs sont composés d'une multitude de lignes entre accolades
while (a < 10) {
- print "La concaténation de chaînes de caractères" " se fait avec des séries de chaînes " " séparées par des espaces";
+ print "La concaténation de chaînes de caractères" " se fait avec"
+ "des séries de chaînes " "séparées par des espaces";
print a;
a++;
@@ -113,7 +128,9 @@ BEGIN {
assoc["foo"] = "bar";
assoc["bar"] = "baz";
- # et les tableaux multi-dimentions, avec certaines limitations que l'on ne mentionnera pas ici
+ # et les tableaux multi-dimentions, avec certaines limitations que l'on ne
+ # mentionnera pas ici
+
multidim[0,0] = "foo";
multidim[0,1] = "bar";
multidim[1,0] = "baz";
@@ -132,10 +149,12 @@ BEGIN {
print ARGV[argnum];
# Vous pouvez supprimer des éléments d'un tableau
- # C'est utile pour empêcher AWK de supposer que certains arguments soient des fichiers à traiter.
+ # C'est utile pour empêcher AWK de supposer que certains arguments soient
+ # des fichiers à traiter.
+
delete ARGV[1];
- # Le nombre d'arguments de la ligne de commande est dans une variable appellée ARGC
+ # Le nombre d'arguments de la ligne de commande est assigné à la variable ARGC
print ARGC;
# AWK inclue trois catégories de fonction.
@@ -149,16 +168,17 @@ BEGIN {
# Voici comment définir une fonction
function arithmetic_functions(a, b, c, d) {
- # La partie la plus ennuieuse de AWK est probablement l’absence de variables locales.
- # Tout est global. Pour les scripts courts, c'est très utile, mais pour les scripts plus longs,
- # cela peut poser problème.
+ # La partie la plus ennuieuse de AWK est probablement l’absence de variables
+ # locales. Tout est global. Pour les scripts courts, c'est très utile, mais
+ # pour les scripts plus longs, cela peut poser problème.
# Il y a cepandant une solution de contournement (enfin ... une bidouille).
# Les arguments d'une fonction sont locaux à cette fonction.
# Et AWK vous permet de définir plus d'arguments à la fonction que nécessaire.
# Il suffit donc de mettre une variable locale dans la déclaration de fonction,
- # comme ci-dessus. La convention veut que vous mettiez quelques espaces supplémentaires
- # pour faire la distinction entre les paramètres réels et les variables locales.
+ # comme ci-dessus. La convention veut que vous mettiez quelques espaces
+ # supplémentaires pour faire la distinction entre les paramètres réels et
+ # les variables locales.
# Dans cet exemple, a, b et c sont des paramètres réels,
# alors que d est simplement une variable locale.
@@ -180,10 +200,10 @@ function arithmetic_functions(a, b, c, d) {
localvar = int(5.34); # localvar => 5
# Les nombres aléatoires
- srand();
+ srand();
# L'argument de la fonction srand() est la valeur de départ pour générer
# les nombres aléatoires . Par défaut, il utilise l'heure du système
-
+
localvar = rand(); # Nombre aléatoire entre 0 et 1.
# Maintenant on retourne la valeur
@@ -197,6 +217,7 @@ function string_functions( localvar, arr) {
# Chercher et remplacer, la première occurence (sub) ou toutes les occurences (gsub)
# Les deux renvoient le nombre de correspondances remplacées
+
localvar = "fooooobar";
sub("fo+", "Meet me at the ", localvar); # localvar => "Meet me at the bar"
gsub("e", ".", localvar); # localvar => "m..t m. at th. bar"
@@ -244,8 +265,8 @@ function io_functions( localvar) {
# Lire quelque chose depuis l'entrée standard et la stocker dans une variable locale
getline localvar;
- # Lire quelque chose à partir d'un pipe (encore une fois, utilisez une chaine de caractère
- # que vous fermerez proprement)
+ # Lire quelque chose à partir d'un pipe (encore une fois, utilisez une
+ # chaine de caractère que vous fermerez proprement)
"echo foobar" | getline localvar # localvar => "foobar"
close("echo foobar")
@@ -256,18 +277,19 @@ function io_functions( localvar) {
}
# Comme dit au début, AWK consiste en une collection de règles et d'actions.
-# Vous connaissez déjà les règles BEGIN et END. Les autres règles ne sont utilisées que si vous traitez
-# des lignes à partir de fichiers ou l'entrée standard (stdin).
-# Quand vous passez des arguments à AWK, ils sont considérés comme des noms de fichiers à traiter.
-# AWK les traitera tous dans l'ordre. Voyez les comme dans à une boucle implicite,
-# parcourant les lignes de ces fichiers.
-# Ces règles et ces actions ressemblent à des instructions switch dans la boucle.
+# Vous connaissez déjà les règles BEGIN et END. Les autres règles ne sont
+# utilisées que si vous traitez des lignes à partir de fichiers ou l'entrée
+# standard (stdin).
+# Quand vous passez des arguments à AWK, ils sont considérés comme des noms de
+# fichiers à traiter. AWK les traitera tous dans l'ordre. Voyez les comme dans à
+# une boucle implicite, parcourant les lignes de ces fichiers. Ces règles et ces
+# actions ressemblent à des instructions switch dans la boucle.
/^fo+bar$/ {
- # Cette action sera exécutée pour chaque ligne qui correspond à l'expression régulière,
- # /^fo+bar$/, et sera ignorée pour toute ligne qui n'y correspond pas.
- # Imprimons simplement la ligne:
+ # Cette action sera exécutée pour chaque ligne qui correspond à l'expression
+ # régulière, /^fo+bar$/, et sera ignorée pour toute ligne qui n'y correspond
+ # pas. Imprimons simplement la ligne:
print;
@@ -275,14 +297,15 @@ function io_functions( localvar) {
# $0 est le nom de la ligne en cours de traitement. Il est créé automatiquement.
# Vous devinez probablement qu'il existe d'autres variables $.
- # Chaque ligne est divisée implicitement avant que chaque action soit exécutée, comme
- # le fait le shell. Et, comme le shell, chaque champ est accessible avec un signe dollar
+ # Chaque ligne est divisée implicitement avant que chaque action soit exécutée,
+ # comme le fait le shell. Et, comme le shell, chaque champ est accessible
+ # avec un signe dollar
# Ceci affichera les deuxième et quatrième champs de la ligne.
print $2, $4;
- # AWK défini automatiquement beaucoup d'autres variables qui peuvent vous aider
- # à inspecter et traiter chaque ligne. La plus importante est NF
+ # AWK défini automatiquement beaucoup d'autres variables qui peuvent vous
+ # aider à inspecter et traiter chaque ligne. La plus importante est NF
# Affiche le nombre de champs de la ligne
print NF;
@@ -291,33 +314,37 @@ function io_functions( localvar) {
print $NF;
}
-# Chaque règle est en réalité un test conditionel.
+# Chaque règle est en réalité un test conditionel.
a > 0 {
# Ceci s’exécutera une fois pour chaque ligne, tant que le test est positif
}
# Les expressions régulières sont également des tests conditionels.
-#Si le test de l'expression régulières n'est pas vrais alors le bloc n'est pas executé
-$0 /^fobar/ {
- print "la ligne commance par fobar"
+# Si le test de l'expression régulières n'est pas vrais alors le bloc
+# n'est pas executé
+
+$0 /^fobar/ {
+ print "la ligne commance par fobar"
}
-# Dans le cas où vous voulez tester votre chaine de caractères sur la ligne en cours de traitement
-# $0 est optionnelle.
+# Dans le cas où vous voulez tester votre chaine de caractères sur la ligne
+# en cours de traitement $0 est optionnelle.
/^[a-zA-Z0-9]$/ {
print "La ligne courante ne contient que des caractères alphanumériques.";
}
-# AWK peut parcourir un fichier texte ligne par ligne et exécuter des actions en fonction de règles établies
-# Cela est si courant sous UNIX qu'AWK est un langage de script.
+# AWK peut parcourir un fichier texte ligne par ligne et exécuter des actions en
+# fonction de règles établies. Cela est si courant sous UNIX qu'AWK est un
+# langage de script.
-# Ce qui suit est un exemple rapide d'un petit script, pour lequel AWK est parfait.
-# Le script lit un nom à partir de l'entrée standard, puis affiche l'âge moyen de toutes les
-# personnes portant ce prénom.
-# Supposons que vous fournissiez comme argument le nom d'un fichier comportant ces données:
+# Ce qui suit est un exemple rapide d'un petit script, pour lequel AWK est
+# parfait. Le script lit un nom à partir de l'entrée standard, puis affiche
+# l'âge moyen de toutes les personnes portant ce prénom.
+# Supposons que vous fournissiez comme argument le nom d'un fichier comportant
+# ces données:
#
# Bob Jones 32
# Jane Doe 22