« Awk » : différence entre les versions
(Page créée avec « = Présentation : fonctionnement global = Awk suit une logique simple : Lis, execute, répète. vignette == Structure d'un programme ==... ») |
Aucun résumé des modifications |
||
Ligne 52 : | Ligne 52 : | ||
5)Hari History89 | 5)Hari History89 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Au début, on affiche un header. Puis on affiche chaque ligne. | |||
== Quelques options == | |||
=== Utiliser un fichier de commandes === | |||
On peut envoyer des instructions depuis un fichier avec -f: | |||
<syntaxhighlight lang='bash'> | |||
$ awk -f command.awk marks.txt | |||
</syntaxhighlight> | |||
=== Variables === | |||
On peut assigner des variables avec -v : | |||
<syntaxhighlight lang='bash'> | |||
$ awk -v name=Jerry 'BEGIN{printf Name = %sn, name}' | |||
Name = Jerry | |||
</syntaxhighlight> | |||
=== Voir les variables globales === | |||
L'option --dump-variables[=file] dumpe un fichier de variables globales, par défaut awkvars.out. | |||
=== lint === | |||
L'option --lint permet d'avoir un linter. |
Version du 16 septembre 2019 à 19:50
Présentation : fonctionnement global
Awk suit une logique simple : Lis, execute, répète.

Structure d'un programme
Nous avons trois blocs : BEGIN, le corps, et END.
Les mots-clefs sont en majuscules.
BEGIN
BEGIN {awk-commands}
Ce bloc est optionnel et ne s'éxecute qu'une seule fois, au démarrage. Il est optionnel.
BEGIN est un mot-clef.
Le corps
/pattern/ {awk-commands}
Ce bloc applique des commandes à chaque ligne, par défaut (à moins qu'on ne le restreigne avec des patterns).
END
END {awk-commands}
Même principe que le BEGIN, mais à la fin.
Premiers tests
Je pars du fichier suivant :
1) Amit Physics 80 2) Rahul Maths 90 3) Shyam Biology 87 4) Kedar English 85 5) Hari History 89
Et avec un petit traitement par awk:
<syntaxhighlight lang='bash'> [justine@argonaut awk]$ awk 'BEGIN{printf Sr NotNametSubttMarksn} {print}' test Sr NoNameSubMarks 1)Amit Physics80 2)Rahul Maths90 3)Shyam Biology87 4)Kedar English85 5)Hari History89 </syntaxhighlight>
Au début, on affiche un header. Puis on affiche chaque ligne.
Quelques options
Utiliser un fichier de commandes
On peut envoyer des instructions depuis un fichier avec -f:
<syntaxhighlight lang='bash'> $ awk -f command.awk marks.txt </syntaxhighlight>
Variables
On peut assigner des variables avec -v :
<syntaxhighlight lang='bash'> $ awk -v name=Jerry 'BEGIN{printf Name = %sn, name}' Name = Jerry </syntaxhighlight>
Voir les variables globales
L'option --dump-variables[=file] dumpe un fichier de variables globales, par défaut awkvars.out.
lint
L'option --lint permet d'avoir un linter.