From b20081e0f8cea3a741a411a8caedb9446fc017d9 Mon Sep 17 00:00:00 2001 From: Norwid Behrnd Date: Mon, 11 Jul 2022 14:12:16 +0200 Subject: correct example about gsub This corrects an error spot in the English edition of the document spot earlier[1] and equally present in the French one. [1] https://github.com/adambard/learnxinyminutes-docs/pull/4437 --- fr-fr/awk-fr.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'fr-fr/awk-fr.html.markdown') diff --git a/fr-fr/awk-fr.html.markdown b/fr-fr/awk-fr.html.markdown index 75c48811..14780c93 100644 --- a/fr-fr/awk-fr.html.markdown +++ b/fr-fr/awk-fr.html.markdown @@ -199,7 +199,7 @@ function string_functions( localvar, arr) { # 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" + gsub("e", ".", localvar); # localvar => "m..t m. at th. bar" # Rechercher une chaîne de caractères qui correspond à une expression régulière # index() fait la même chose, mais n'autorise pas les expressions régulières -- cgit v1.2.3 From c68805c2cbac626597ccaf48038b1ea2aefcb3dc Mon Sep 17 00:00:00 2001 From: Norwid Behrnd Date: Mon, 11 Jul 2022 14:46:32 +0200 Subject: shorten overly long lines Following the recommendation to not exceed 80 characters/line. --- fr-fr/awk-fr.html.markdown | 123 +++++++++++++++++++++++++++------------------ 1 file changed, 75 insertions(+), 48 deletions(-) (limited to 'fr-fr/awk-fr.html.markdown') 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 = " "). - -# 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). +# 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 { # 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 -- cgit v1.2.3 From a18b5e2e8769c85fafc6e8499843d71d36e4525c Mon Sep 17 00:00:00 2001 From: nbehrnd Date: Tue, 12 Jul 2022 13:32:27 +0200 Subject: [AWK/fr] correction orthography (#4445) * [awk-fr], spell check, errors spot by @vendethiel The commit accounts for errors in orthography identified by @vendethiel.[1] [1] https://github.com/adambard/learnxinyminutes-docs/pull/4440 * [awk-fr] spell check, own revision Additional spell check. --- fr-fr/awk-fr.html.markdown | 45 +++++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 20 deletions(-) (limited to 'fr-fr/awk-fr.html.markdown') diff --git a/fr-fr/awk-fr.html.markdown b/fr-fr/awk-fr.html.markdown index 98f2b29d..9e45a89b 100644 --- a/fr-fr/awk-fr.html.markdown +++ b/fr-fr/awk-fr.html.markdown @@ -38,14 +38,14 @@ 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 +# peut être changé 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 +# À 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 { @@ -54,7 +54,7 @@ BEGIN { count = 0; # les opérateurs sont identiques au langage C et aux langages similaires - # (telsque C#, C++, etc.) + # (tels que C#, C++, etc.) a = count + 1; # addition b = count - 1; # soustraction c = count * 1; # multiplication @@ -128,7 +128,7 @@ BEGIN { assoc["foo"] = "bar"; assoc["bar"] = "baz"; - # et les tableaux multi-dimentions, avec certaines limitations que l'on ne + # et les tableaux multi-dimensions, avec certaines limitations que l'on ne # mentionnera pas ici multidim[0,0] = "foo"; @@ -140,7 +140,8 @@ BEGIN { if ("foo" in assoc) print "Fooey!"; - # Vous pouvez aussi utilisez l'opérateur 'in' pour parcourir les clés d'un tableau + # Vous pouvez aussi utilisez l'opérateur 'in' pour parcourir les clés + # d'un tableau for (key in assoc) print assoc[key]; @@ -168,11 +169,11 @@ 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 + # La partie la plus ennuyeuse 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. + # pour les scripts plus longs, cela peut poser un problème. - # Il y a cepandant une solution de contournement (enfin ... une bidouille). + # Il y a cependant 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, @@ -184,7 +185,8 @@ function arithmetic_functions(a, b, c, d) { # Maintenant, les fonctions arithmétiques - # La plupart des implémentations de AWK ont des fonctions trigonométriques standards + # La plupart des implémentations de AWK ont des fonctions trigonométriques + # standards localvar = sin(a); localvar = cos(a); localvar = atan2(b, a); # arc tangente de b / a @@ -215,7 +217,8 @@ function string_functions( localvar, arr) { # AWK a plusieurs fonctions pour le traitement des chaînes de caractères, # dont beaucoup reposent sur des expressions régulières. - # Chercher et remplacer, la première occurence (sub) ou toutes les occurences (gsub) + # Chercher et remplacer, la première occurrence (sub) ou toutes les + # occurrences (gsub) # Les deux renvoient le nombre de correspondances remplacées localvar = "fooooobar"; @@ -247,7 +250,8 @@ function io_functions( localvar) { printf("%s %d %d %d\n", "Testing", 1, 2, 3); # AWK n'a pas de descripteur de fichier en soi. Il ouvrira automatiquement - # un descripteur de fichier lorsque vous utilisez quelque chose qui en a besoin. + # un descripteur de fichier lorsque vous utilisez quelque chose qui en a + # besoin. # La chaîne de caractères que vous avez utilisée pour cela peut être traitée # comme un descripteur de fichier à des fins d'entrée / sortie. @@ -262,11 +266,12 @@ function io_functions( localvar) { # Voici comment exécuter quelque chose dans le shell system("echo foobar"); # => affiche foobar - # Lire quelque chose depuis l'entrée standard et la stocker dans une variable locale + # 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) + # chaîne de caractère que vous fermerez proprement) "echo foobar" | getline localvar # localvar => "foobar" close("echo foobar") @@ -281,7 +286,7 @@ function io_functions( localvar) { # 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 à +# 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. @@ -314,21 +319,21 @@ 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 conditionnel. 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. +# Les expressions régulières sont également des tests conditionnels. # Si le test de l'expression régulières n'est pas vrais alors le bloc -# n'est pas executé +# n'est pas exécuté. $0 /^fobar/ { - print "la ligne commance par fobar" + print "la ligne commence par foobar" } -# Dans le cas où vous voulez tester votre chaine de caractères sur la ligne +# Dans le cas où vous voulez tester votre chaîne de caractères sur la ligne # en cours de traitement $0 est optionnelle. /^[a-zA-Z0-9]$/ { @@ -357,7 +362,7 @@ $0 /^fobar/ { BEGIN { # Premièrement, on demande à l'utilisateur le prénom voulu - print "Pour quel prénom vouldriez vous savoir l'age moyen ?"; + print "Pour quel prénom voudriez vous savoir l'age moyen ?"; # On récupère la ligne à partir de l'entrée standard, pas de la ligne de commande getline name < "/dev/stdin"; -- cgit v1.2.3 From 38abd4298cd25bd1a2ed9efd09df51766c97ae27 Mon Sep 17 00:00:00 2001 From: Norwid Behrnd Date: Wed, 23 Nov 2022 21:17:18 +0100 Subject: run `sed -i 's/ *$//' awk-fr.html.markdown` Remove of trailing spaces. --- fr-fr/awk-fr.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'fr-fr/awk-fr.html.markdown') diff --git a/fr-fr/awk-fr.html.markdown b/fr-fr/awk-fr.html.markdown index 9e45a89b..fa4c36cc 100644 --- a/fr-fr/awk-fr.html.markdown +++ b/fr-fr/awk-fr.html.markdown @@ -53,7 +53,7 @@ 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 + # les opérateurs sont identiques au langage C et aux langages similaires # (tels que C#, C++, etc.) a = count + 1; # addition b = count - 1; # soustraction -- cgit v1.2.3 From 27f052e68d1132796b7fcf3deed61dfe937193ee Mon Sep 17 00:00:00 2001 From: Norwid Behrnd Date: Wed, 23 Nov 2022 21:26:20 +0100 Subject: break overly long lines Critical threshold for a line are 80 characters maximum. --- fr-fr/awk-fr.html.markdown | 54 ++++++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 23 deletions(-) (limited to 'fr-fr/awk-fr.html.markdown') diff --git a/fr-fr/awk-fr.html.markdown b/fr-fr/awk-fr.html.markdown index fa4c36cc..172a3ba4 100644 --- a/fr-fr/awk-fr.html.markdown +++ b/fr-fr/awk-fr.html.markdown @@ -73,7 +73,8 @@ BEGIN { a++; b--; - # En tant qu'opérateur préfixé, c'est la valeur incrémentée qui est retournée + # En tant qu'opérateur préfixé, c'est la valeur incrémentée qui + # est retournée ++a; --b; @@ -155,7 +156,8 @@ BEGIN { delete ARGV[1]; - # Le nombre d'arguments de la ligne de commande est assigné à la variable ARGC + # Le nombre d'arguments de la ligne de commande est assigné à + # la variable ARGC print ARGC; # AWK inclue trois catégories de fonction. @@ -175,11 +177,11 @@ function arithmetic_functions(a, b, c, d) { # Il y a cependant 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. + # 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. # Dans cet exemple, a, b et c sont des paramètres réels, # alors que d est simplement une variable locale. @@ -225,12 +227,14 @@ function string_functions( localvar, arr) { sub("fo+", "Meet me at the ", localvar); # localvar => "Meet me at the bar" gsub("e", ".", localvar); # localvar => "m..t m. at th. bar" - # Rechercher une chaîne de caractères qui correspond à une expression régulière - # index() fait la même chose, mais n'autorise pas les expressions régulières + # Rechercher une chaîne de caractères qui correspond à une expression + # régulière index() fait la même chose, mais n'autorise pas les expressions + # régulières match(localvar, "t"); # => 4, puisque 't' est le quatrième caractère # Séparer par un délimiteur - n = split("foo-bar-baz", arr, "-"); # a[1] = "foo"; a[2] = "bar"; a[3] = "baz"; n = 3 + n = split("foo-bar-baz", arr, "-"); + # résultat : a[1] = "foo"; a[2] = "bar"; a[3] = "baz"; n = 3 # Autre astuces utiles sprintf("%s %d %d %d", "Testing", 1, 2, 3); # => "Testing 1 2 3" @@ -259,15 +263,15 @@ function io_functions( localvar) { print "foobar" > outfile; - # Maintenant, la chaîne de caractères "outfile" est un descripteur de fichier. - # Vous pouvez le fermer + # Maintenant, la chaîne de caractères "outfile" est un descripteur de + # fichier. Vous pouvez le fermer close(outfile); # Voici comment exécuter quelque chose dans le shell system("echo foobar"); # => affiche foobar - # Lire quelque chose depuis l'entrée standard et la stocker dans une variable - # locale + # 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 @@ -299,12 +303,13 @@ function io_functions( localvar) { print; # Pas d'argument ! C'est parce que print a un défaut : $0. - # $0 est le nom de la ligne en cours de traitement. Il est créé automatiquement. + # $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; @@ -364,22 +369,24 @@ BEGIN { # Premièrement, on demande à l'utilisateur le prénom voulu print "Pour quel prénom voudriez vous savoir l'age moyen ?"; - # On récupère la ligne à partir de l'entrée standard, pas de la ligne de commande + # On récupère la ligne à partir de l'entrée standard, pas de la ligne + # de commande : getline name < "/dev/stdin"; } # Maintenant, pour chaque ligne dont le premier champ est le prénom donné $1 == name { - # Ici, nous avons accès à un certain nombre de variables utiles déjà préchargées : + # Ici, nous avons accès à un certain nombre de variables utiles déjà + # préchargées : # $0 est la ligne entière # $3 est le troisième champ. Ici il correspond à l'age qui nous intéresse # NF est le nombre de champs et vaut 3 # NR est le nombre d'enregistrements (lignes) vus jusqu'à présent # FILENAME est le nom du fichier en cours de traitement # FS est séparateur de champs, ici c'est " " (un espace) - # ...etc. Et beaucoup d'autre que vous pouvez connaître dans le manuel de man. - # Pour cela exécutez "man awk" dans votre terminal + # ...etc. Et beaucoup d'autre que vous pouvez connaître dans le manuel de + # man. Pour cela exécutez "man awk" dans votre terminal. # Garder une trace du total accumulé et du nombre de lignes correspondant. sum += $3; @@ -405,5 +412,6 @@ Pour plus d'informations : * [Awk tutorial](http://www.grymoire.com/Unix/Awk.html) * [Awk man page](https://linux.die.net/man/1/awk) -* [The GNU Awk User's Guide](https://www.gnu.org/software/gawk/manual/gawk.html) GNU Awk est dans la majorité des systèmes Linux. +* [The GNU Awk User's Guide](https://www.gnu.org/software/gawk/manual/gawk.html) + GNU Awk est dans la majorité des systèmes Linux. * [AWK one-liner collection](http://tuxgraphics.org/~guido/scripts/awk-one-liner.html) -- cgit v1.2.3 From 7a2f6ddacd5b5895bfc57baef19d17d24716061c Mon Sep 17 00:00:00 2001 From: Norwid Behrnd Date: Wed, 23 Nov 2022 22:01:08 +0100 Subject: keep introducing comments close to their object In previous commits, some introducing comments ended just in the line ahead of their example; others did not. For consistency, comments are now back to back with their example. --- fr-fr/awk-fr.html.markdown | 56 +++++++++++++++++----------------------------- 1 file changed, 21 insertions(+), 35 deletions(-) (limited to 'fr-fr/awk-fr.html.markdown') diff --git a/fr-fr/awk-fr.html.markdown b/fr-fr/awk-fr.html.markdown index 172a3ba4..a5db24b2 100644 --- a/fr-fr/awk-fr.html.markdown +++ b/fr-fr/awk-fr.html.markdown @@ -24,14 +24,12 @@ 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 #!/usr/bin/awk -f # Les commentaires commencent par un # - -# les programmes AWK consistent en une collection de règles et d'actions +# Les programmes AWK consistent en une collection de règles et d'actions. règle1 { action; } règle2 { action; } @@ -46,14 +44,14 @@ règle2 { action; } # texte. Si vous ne disposez pas de fichiers texte, considérez BEGIN comme le # point d’entrée principal du script. # À 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). +# 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 + # Les opérateurs sont identiques au langage C et aux langages similaires # (tels que C#, C++, etc.) a = count + 1; # addition b = count - 1; # soustraction @@ -122,7 +120,6 @@ BEGIN { arr[1] = "bar"; # Vous pouvez aussi initialiser un tableau avec la fonction split() - n = split("foo:bar:baz", arr, ":"); # Il y a aussi les tableaux associatifs @@ -131,7 +128,6 @@ BEGIN { # et les tableaux multi-dimensions, avec certaines limitations que l'on ne # mentionnera pas ici - multidim[0,0] = "foo"; multidim[0,1] = "bar"; multidim[1,0] = "baz"; @@ -150,19 +146,16 @@ BEGIN { for (argnum in ARGV) print ARGV[argnum]; - # Vous pouvez supprimer des éléments d'un tableau + # 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. - delete ARGV[1]; # Le nombre d'arguments de la ligne de commande est assigné à # la variable ARGC print ARGC; - # AWK inclue trois catégories de fonction. - # On les examinera plus tard - + # AWK inclue trois catégories de fonction. On les examinera plus tard. return_value = arithmetic_functions(a, b, c); string_functions(); io_functions(); @@ -182,8 +175,8 @@ function arithmetic_functions(a, b, c, d) { # 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. - # Dans cet exemple, a, b et c sont des paramètres réels, - # alors que d est simplement une variable locale. + # Dans cet exemple, a, b et c sont des paramètres réels, alors que d est + # simplement une variable locale. # Maintenant, les fonctions arithmétiques @@ -219,17 +212,16 @@ function string_functions( localvar, arr) { # AWK a plusieurs fonctions pour le traitement des chaînes de caractères, # dont beaucoup reposent sur des expressions régulières. - # Chercher et remplacer, la première occurrence (sub) ou toutes les - # occurrences (gsub) + # Chercher et remplacer, la première occurrence (sub), ou toutes les + # occurrences (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" # Rechercher une chaîne de caractères qui correspond à une expression # régulière index() fait la même chose, mais n'autorise pas les expressions - # régulières + # régulières. match(localvar, "t"); # => 4, puisque 't' est le quatrième caractère # Séparer par un délimiteur @@ -255,16 +247,13 @@ function io_functions( localvar) { # AWK n'a pas de descripteur de fichier en soi. Il ouvrira automatiquement # un descripteur de fichier lorsque vous utilisez quelque chose qui en a - # besoin. - # La chaîne de caractères que vous avez utilisée pour cela peut être traitée - # comme un descripteur de fichier à des fins d'entrée / sortie. - + # besoin. La chaîne de caractères que vous avez utilisée pour cela peut être + # traitée comme un descripteur de fichier à des fins d'entrée / sortie. outfile = "/tmp/foobar.txt"; - print "foobar" > outfile; # Maintenant, la chaîne de caractères "outfile" est un descripteur de - # fichier. Vous pouvez le fermer + # fichier. Vous pouvez le fermer. close(outfile); # Voici comment exécuter quelque chose dans le shell @@ -298,7 +287,7 @@ function io_functions( localvar) { # 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: + # pas. Imprimons simplement la ligne : print; @@ -311,11 +300,11 @@ function io_functions( localvar) { # 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. + # 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 + # aider à inspecter et traiter chaque ligne. La plus importante est NF. # Affiche le nombre de champs de la ligne print NF; @@ -325,7 +314,6 @@ function io_functions( localvar) { } # Chaque règle est en réalité un test conditionnel. - a > 0 { # Ceci s’exécutera une fois pour chaque ligne, tant que le test est positif } @@ -333,19 +321,16 @@ a > 0 { # Les expressions régulières sont également des tests conditionnels. # Si le test de l'expression régulières n'est pas vrais alors le bloc # n'est pas exécuté. - $0 /^fobar/ { print "la ligne commence par foobar" } # Dans le cas où vous voulez tester votre chaîne 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. @@ -354,7 +339,7 @@ $0 /^fobar/ { # 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: +# ces données : # # Bob Jones 32 # Jane Doe 22 @@ -397,9 +382,9 @@ $1 == name { # les fichiers texte. Contrairement à BEGIN, il ne fonctionne que si vous lui # donnez une entrée à traiter. Il sera exécuté une fois que tous les fichiers # auront été lus et traités conformément aux règles et aux actions que vous -# avez fournies. Le but est généralement de produire un rapport final -# ou de faire quelque chose avec l'ensemble des données que vous avez -# accumulées au cours du script. +# avez fournies. Le but est généralement de produire un rapport final, ou de +# faire quelque chose avec l'ensemble des données que vous avez accumulées +# au cours du script. END { @@ -408,6 +393,7 @@ END { } ``` + Pour plus d'informations : * [Awk tutorial](http://www.grymoire.com/Unix/Awk.html) -- cgit v1.2.3 From 62b5f91d724a7d5cbcbe18086a9ecbc449128e4b Mon Sep 17 00:00:00 2001 From: Adrien LUDWIG <42720099+Adrien-LUDWIG@users.noreply.github.com> Date: Fri, 8 Sep 2023 05:27:46 +0000 Subject: [awk] Fix wrong example output (in all languages) (#4750) --- fr-fr/awk-fr.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'fr-fr/awk-fr.html.markdown') diff --git a/fr-fr/awk-fr.html.markdown b/fr-fr/awk-fr.html.markdown index a5db24b2..bd4e1312 100644 --- a/fr-fr/awk-fr.html.markdown +++ b/fr-fr/awk-fr.html.markdown @@ -217,7 +217,7 @@ function string_functions( localvar, arr) { # 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" + gsub("e", ".", localvar); # localvar => "M..t m. at th. bar" # Rechercher une chaîne de caractères qui correspond à une expression # régulière index() fait la même chose, mais n'autorise pas les expressions -- cgit v1.2.3