informatique:awk
Ceci est une ancienne révision du document !
Table des matières
Awk
Variables
- NR : nombre d'enregistrements lus
- FNR : nombre d'enregistrements lus dans le fichier courant
- FILENAME : nom du fichier courant
- FS : séparateur de champs en entrée
- OFS : séparateur de champs en sortie
Scripts
Remplacer les clefs par les valeurs
# fichier_1 contient l'association entre les clefs et les valeurs : # A 10 # B 30 # C 20 # fichier_2 contient les données à transformer : # ID1 A # ID2 A # ID3 C # ID4 B awk 'FNR==NR{a[$1]=$2;next}{print $1,a[$2]}' <fichier_1> <fichier_2> # La sortie de la commande donnera le résultat suivant : # ID1 10 # ID2 10 # ID3 20 # ID4 30
FNR==NR
permet l'exécution du bloc suivant uniquement lors de la lecture du premier fichier.a[$1]=$2
permet de créer un tableau associatif avec les valeurs trouvées.next
permet de passer directement à l'enregistrement suivant.{print $1,a[$2]}
permet d'afficher une valeur et une valeur convertie.
Afficher la date courante
awk '{ "date +%d-%b-%Y" | getline; print }'
date +%d-%b-%Y
est l'appel à la commandedate
du système. Le format dépend donc de la commande et non pas de awk.getline
permet de stocker la date dans une variable.
Afficher toutes les trois lignes d'un fichier
- En commençant à la première ligne
awk '(NR%3 == 1){print $0}'
- En commençant à la deuxième ligne
awk '(NR%3 == 2){print $0}'
- En commençant à la troisième ligne
awk '(NR%3 == 0){print $0}' # Syntaxe alternative awk '(NR%3){print $0}'
Liens
informatique/awk.1505115278.txt.gz · Dernière modification : 2017/09/11 00:34 de alexis