informatique:linux:awk
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
informatique:linux:awk [2011/01/05 16:26] – [Les variables prédéfinies] pteu | informatique:linux:awk [2019/06/06 07:25] – [Exemples] pteu | ||
---|---|---|---|
Line 22: | Line 22: | ||
====Les options==== | ====Les options==== | ||
- | * '' | + | * '' |
+ | <code bash> | ||
+ | vi test.awk | ||
+ | BEGIN{FS=";"; | ||
+ | $0 ~ " | ||
+ | :x | ||
+ | |||
+ | awk -f test.awk fichier.txt | ||
+ | ceci est un test | ||
+ | </ | ||
* '' | * '' | ||
- | < | + | < |
echo " | echo " | ||
toto tata titi | toto tata titi | ||
</ | </ | ||
* '' | * '' | ||
- | < | + | < |
HOST=toto ; echo titi | awk -v h=$HOST ' | HOST=toto ; echo titi | awk -v h=$HOST ' | ||
| | ||
+ | </ | ||
+ | |||
+ | Autre façon de passer des variables dans un fichier de script : | ||
+ | <code bash> | ||
+ | vi test.awk | ||
+ | BEGIN{FS=";"; | ||
+ | $0 ~ rechch {print $0} | ||
+ | :x | ||
+ | |||
+ | awk -f test.awk rechch=test fichier.txt | ||
+ | ceci est un test | ||
</ | </ | ||
Line 53: | Line 73: | ||
| SUBSEP | | SUBSEP | ||
- | ====Les fonctions==== | + | ====Les fonctions |
- | Les paramètres sont soit des chaines de caractère | + | Les paramètres sont soit des chaines de caractères |
* '' | * '' | ||
* '' | * '' | ||
Line 64: | Line 84: | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | ===Le cas printf=== | ||
+ | |||
+ | **printf** et ses dérivées sont des fonctions d' | ||
+ | <code bash> | ||
+ | # afficher les logins et description des utilisateurs locaux qui utilisent le shell /bin/bash | ||
+ | # en alignant les logins à droite et sur 20 caractères | ||
+ | awk -F: '$7 ~ / | ||
+ | root root | ||
+ | dude a dude | ||
+ | robert | ||
+ | |||
+ | # puisque l' | ||
+ | # on utilise l' | ||
+ | awk -F: 'BEGIN {printf "%-20s %s\n", " | ||
+ | login: | ||
+ | root root | ||
+ | dude a dude | ||
+ | robert | ||
+ | |||
+ | # on peut même définir un format d' | ||
+ | awk -F: 'BEGIN {format = "%-20s %s\n"; printf format, " | ||
+ | login: | ||
+ | --- --- | ||
+ | root root | ||
+ | dude a dude | ||
+ | robert | ||
+ | |||
+ | # la même commande, en plus lisible : | ||
+ | awk -F: 'BEGIN {format = "%-10s %s\n" | ||
+ | printf format, " | ||
+ | printf format, " | ||
+ | $7 ~ / | ||
+ | </ | ||
+ | |||
+ | ====Les fonctions mathématiques==== | ||
+ | |||
+ | cos(x), exp(x), int(x), log(x), sin(x), sqrt(x), atan2(x,y), rand(x), srand(x) | ||
====Exemples==== | ====Exemples==== | ||
Line 114: | Line 174: | ||
</ | </ | ||
+ | * afficher les blocs de texte du fichier FIC.txt compris entre les balises BEGIN et END : | ||
+ | <code bash> | ||
+ | awk '/ | ||
+ | </ | ||
+ | |||
+ | * supprimer (ne pas afficher) les doublons de lignes dans un fichier : | ||
+ | <code bash> | ||
+ | awk ' | ||
+ | </ | ||
+ | |||
+ | * quitter la boucle awk après le premier match | ||
+ | <code bash> | ||
+ | echo -e " | ||
+ | </ |
informatique/linux/awk.txt · Last modified: 2022/04/13 13:03 by pteu