informatique:awk
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
informatique:awk [2020/10/11 02:39] – alexis | informatique:awk [2023/01/04 20:46] (Version actuelle) – [Remplacer le séparateur d'un fichier] alexis | ||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
=== FILENAME — nom du fichier courant === | === FILENAME — nom du fichier courant === | ||
La variable '' | La variable '' | ||
+ | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
awk ' | awk ' | ||
</ | </ | ||
+ | </ | ||
=== FNR — nombre d' | === FNR — nombre d' | ||
La variable '' | La variable '' | ||
Le compteur d' | Le compteur d' | ||
+ | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
awk ' | awk ' | ||
</ | </ | ||
+ | </ | ||
=== FS — Séparateur de champs === | === FS — Séparateur de champs === | ||
La variable '' | La variable '' | ||
Par défaut, l' | Par défaut, l' | ||
+ | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
# Initialisation de la variable dans la liste de commande | # Initialisation de la variable dans la liste de commande | ||
Ligne 26: | Ligne 31: | ||
awk -F' | awk -F' | ||
</ | </ | ||
+ | </ | ||
+ | |||
+ | <WRAP info> | ||
+ | Le séparateur de champ peut être une expression rationnelle. | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | # Initialisation de la variable dans la liste de commande | ||
+ | awk 'BEGIN { FS=" | ||
+ | |||
+ | # Initialisation de la variable par l' | ||
+ | awk -F' | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
=== NF — Nombre de champs === | === NF — Nombre de champs === | ||
La variable '' | La variable '' | ||
+ | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
awk ' | awk ' | ||
</ | </ | ||
+ | </ | ||
=== NR — Nombre d' | === NR — Nombre d' | ||
La variable '' | La variable '' | ||
Le compteur d' | Le compteur d' | ||
+ | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
awk ' | awk ' | ||
</ | </ | ||
+ | </ | ||
=== OFS — Séparateur de champs de la sortie === | === OFS — Séparateur de champs de la sortie === | ||
La variable '' | La variable '' | ||
Par défaut, l' | Par défaut, l' | ||
+ | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
awk 'BEGIN { OFS=":" | awk 'BEGIN { OFS=":" | ||
</ | </ | ||
+ | </ | ||
===== Scripts ===== | ===== Scripts ===== | ||
==== Remplacer les clefs par les valeurs ==== | ==== Remplacer les clefs par les valeurs ==== | ||
+ | <WRAP prewrap> | ||
<code awk> | <code awk> | ||
# fichier_1 contient l' | # fichier_1 contient l' | ||
Ligne 68: | Ligne 95: | ||
# ID4 30 | # ID4 30 | ||
</ | </ | ||
+ | </ | ||
* '' | * '' | ||
* '' | * '' | ||
Ligne 74: | Ligne 102: | ||
==== Afficher la date courante ==== | ==== Afficher la date courante ==== | ||
+ | <WRAP prewrap> | ||
<code awk> | <code awk> | ||
awk '{ "date +%d-%b-%Y" | awk '{ "date +%d-%b-%Y" | ||
</ | </ | ||
+ | </ | ||
* '' | * '' | ||
* '' | * '' | ||
Ligne 83: | Ligne 112: | ||
==== Afficher toutes les trois lignes d'un fichier ==== | ==== Afficher toutes les trois lignes d'un fichier ==== | ||
* En commençant à la première ligne | * En commençant à la première ligne | ||
+ | <WRAP prewrap> | ||
<code awk> | <code awk> | ||
awk '(NR%3 == 1){print $0}' | awk '(NR%3 == 1){print $0}' | ||
</ | </ | ||
+ | </ | ||
* En commençant à la deuxième ligne | * En commençant à la deuxième ligne | ||
+ | <WRAP prewrap> | ||
<code awk> | <code awk> | ||
awk '(NR%3 == 2){print $0}' | awk '(NR%3 == 2){print $0}' | ||
</ | </ | ||
+ | </ | ||
* En commençant à la troisième ligne | * En commençant à la troisième ligne | ||
+ | <WRAP prewrap> | ||
<code awk> | <code awk> | ||
awk '(NR%3 == 0){print $0}' | awk '(NR%3 == 0){print $0}' | ||
Ligne 97: | Ligne 131: | ||
awk ' | awk ' | ||
</ | </ | ||
+ | </ | ||
==== Faire des statistiques d' | ==== Faire des statistiques d' | ||
Dans le journal des évènements d'une API contenant la liste des URI appelées, je veux compter les types d' | Dans le journal des évènements d'une API contenant la liste des URI appelées, je veux compter les types d' | ||
+ | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
# trouver le nombre d' | # trouver le nombre d' | ||
Ligne 124: | Ligne 160: | ||
39242 | 39242 | ||
</ | </ | ||
+ | </ | ||
==== Afficher le dernier champ de chaque ligne ==== | ==== Afficher le dernier champ de chaque ligne ==== | ||
En faisant astucieusement usage de la variable '' | En faisant astucieusement usage de la variable '' | ||
)) | )) | ||
+ | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
awk ' | awk ' | ||
</ | </ | ||
+ | </ | ||
==== Remplacer le séparateur d'un fichier ==== | ==== Remplacer le séparateur d'un fichier ==== | ||
- | En assignant la variable '' | + | En assignant la variable '' |
La reconstruction de l' | La reconstruction de l' | ||
+ | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
- | awk -F',' | + | # Ici, 1 équivaut à true, ce qui affiche la ligne complète |
+ | awk 'BEGIN { FS=","; OFS=" | ||
+ | |||
+ | # Cette écriture est donc équivalente | ||
+ | awk 'BEGIN { FS=","; | ||
</ | </ | ||
- | <WRAP todo> | ||
- | Comprendre pourquoi j'ai le '' | ||
</ | </ | ||
+ | |||
+ | ==== Calculer la somme des champs d'un fichier ==== | ||
+ | <code bash> | ||
+ | awk '{ somme += $1 } END { print somme }' < | ||
+ | </ | ||
===== Liens ===== | ===== Liens ===== |
informatique/awk.1602409165.txt.gz · Dernière modification : 2020/10/11 02:39 de alexis