Outils pour utilisateurs

Outils du site


informatique:awk

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
informatique:awk [2020/10/11 02:00] alexisinformatique:awk [2020/11/26 13:35] – [Remplacer le séparateur d'un fichier] alexis
Ligne 6: Ligne 6:
 La variable ''FILENAME'' contient le nom du fichier courant. La variable ''FILENAME'' contient le nom du fichier courant.
 <code bash> <code bash>
-awk '{print FILENAME}' <file>+awk '{print FILENAME}' <fichier>
 </code> </code>
  
Ligne 13: Ligne 13:
 Le compteur d'enregistrements s'initialise entre chaque fichier. Le compteur d'enregistrements s'initialise entre chaque fichier.
 <code bash> <code bash>
-awk '{print FNR}' <file1> <file2>+awk '{print FNR}' <fichier1> <fichier2>
 </code> </code>
  
Ligne 21: Ligne 21:
 <code bash> <code bash>
 # Initialisation de la variable dans la liste de commande # Initialisation de la variable dans la liste de commande
-awk 'BEGIN { FS="=" } { print $1 }' <file>+awk 'BEGIN { FS="=" } { print $1 }' <fichier>
  
 # Initialisation de la variable par l'option du programme # Initialisation de la variable par l'option du programme
-awk -F'=' '{print $1}' <file>+awk -F'=' '{print $1}' <fichier>
 </code> </code>
 +
 +<WRAP info>
 +Le séparateur de champ peut être une expression rationnelle.
 +<code bash>
 +# Initialisation de la variable dans la liste de commande
 +awk 'BEGIN { FS="[=_]" } { print $1 }' <fichier>
 +
 +# Initialisation de la variable par l'option du programme
 +awk -F'[=_]' '{print $1}' <fichier>
 +</code>
 +</WRAP>
 +
  
 === NF — Nombre de champs === === NF — Nombre de champs ===
 La variable ''NF'' contient le nombre de champs de l'enregistrement courant. La variable ''NF'' contient le nombre de champs de l'enregistrement courant.
 <code bash> <code bash>
-awk '{print NF}' <file>+awk '{print NF}' <fichier>
 </code> </code>
  
Ligne 37: Ligne 49:
 Le compteur d'enregistrements ne s'initialise pas entre chaque fichier. Le compteur d'enregistrements ne s'initialise pas entre chaque fichier.
 <code bash> <code bash>
-awk '{print NR}' <file1> <file2>+awk '{print NR}' <fichier1> <fichier2>
 </code> </code>
  
Ligne 44: Ligne 56:
 Par défaut, l'espace est utilisée. Par défaut, l'espace est utilisée.
 <code bash> <code bash>
-awk 'BEGIN { OFS=":" } { print $1 }' <file>+awk 'BEGIN { OFS=":" } { print $1 }' <fichier>
 </code> </code>
  
Ligne 130: Ligne 142:
 <code bash> <code bash>
 awk '{print $NF}' <fichier> awk '{print $NF}' <fichier>
 +</code>
 +
 +==== Remplacer le séparateur d'un fichier ====
 +En assignant la variable ''$1'' à ''$1'', cela modifie la valeur du champ ce qui force ''awk'' à reconstruire l'enregistrement ''$0''.
 +La reconstruction de l'enregistrement remplace le séparateur ''FS'' par ''OFS''.
 +<code bash>
 +# Ici, 1 équivaut à true, ce qui affiche la ligne complète
 +awk 'BEGIN { FS=","; OFS="|" } { $1=$1 } 1' <fichier>
 +
 +# Cette écriture est donc équivalente
 +awk 'BEGIN { FS=","; OFS="|" } { $1=$1; print $0 }' <fichier>
 </code> </code>
  
informatique/awk.txt · Dernière modification : 2023/01/04 20:46 de alexis