informatique:linux:awk
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
informatique:linux:awk [2011/01/06 15:27] – pteu | informatique:linux:awk [2025/02/17 14:14] (current) – [Exemples] case-insensitive search pteu | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | {{tag> | ||
- | |||
- | |||
======awk====== | ======awk====== | ||
Line 86: | Line 83: | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * '' | ||
+ | |||
+ | ===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==== | ====Les fonctions mathématiques==== | ||
Line 94: | Line 126: | ||
* imprime chaque ligne du fichier /etc/passwd après avoir effacé le deuxième champs | * imprime chaque ligne du fichier /etc/passwd après avoir effacé le deuxième champs | ||
- | < | + | < |
awk -F ":" | awk -F ":" | ||
</ | </ | ||
* imprime le nombre total de lignes du fichiers | * imprime le nombre total de lignes du fichiers | ||
- | < | + | < |
awk 'END {print NR}' /etc/passwd | awk 'END {print NR}' /etc/passwd | ||
</ | </ | ||
* lire la 3ème ligne d'un fichier : | * lire la 3ème ligne d'un fichier : | ||
- | < | + | < |
awk '{if (NR==3) print}' | awk '{if (NR==3) print}' | ||
</ | </ | ||
* imprime le dernier champs de chaque ligne | * imprime le dernier champs de chaque ligne | ||
- | < | + | < |
awk ' | awk ' | ||
</ | </ | ||
* imprime le login et le temps de connexion. | * imprime le login et le temps de connexion. | ||
- | < | + | < |
who | awk ' | who | awk ' | ||
</ | </ | ||
* imprime les lignes de plus de 75 caractères. ('' | * imprime les lignes de plus de 75 caractères. ('' | ||
- | < | + | < |
awk ' | awk ' | ||
</ | </ | ||
* tests sur le fichier /etc/passwd : | * tests sur le fichier /etc/passwd : | ||
- | < | + | < |
awk 'BEGIN { print " | awk 'BEGIN { print " | ||
print "- les utilisateurs avec UID = 0 " ; | print "- les utilisateurs avec UID = 0 " ; | ||
Line 136: | Line 168: | ||
* supprimer le suffixe du domaine d'un nom de machine : | * supprimer le suffixe du domaine d'un nom de machine : | ||
- | < | + | < |
echo " | echo " | ||
</ | </ | ||
+ | * 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 " | ||
+ | toto | ||
+ | </ | ||
+ | |||
+ | * émuler la fonction trim (efface les espaces avant et après une chaine) : | ||
+ | <code bash> | ||
+ | echo -e " | ||
+ | awk -F\: '{ sub(/^[ \t\r\n]+/, "", | ||
+ | </ | ||
+ | |||
+ | * ne pas afficher les lignes en doublon | ||
+ | <code bash> | ||
+ | # count s' | ||
+ | awk ' | ||
+ | </ | ||
+ | |||
+ | * compter le nombre de caractère dans une ligne (k pour l' | ||
+ | <code bash> | ||
+ | echo $ligne | awk -F' | ||
+ | </ | ||
+ | |||
+ | * N' | ||
+ | <code bash> | ||
+ | awk ' | ||
+ | </ | ||
+ | |||
+ | * filtrer sans tenir compte de la casse (minuscule/ | ||
+ | <code bash> | ||
+ | echo " | ||
+ | TOTO | ||
+ | </ |
informatique/linux/awk.1294327636.txt.gz · Last modified: 2013/10/14 20:54 (external edit)