Aperçu
L'instruction `print` d'`awk` est utilisée pour envoyer les données extraites des enregistrements (lignes) d'entrée vers la sortie standard. Vous pouvez sélectionner des données par champ (colonne), combiner plusieurs champs pour l'affichage, et contrôler la sortie en fonction de conditions. `print` est l'une des actions les plus fondamentales d'un script `awk`.
Caractéristiques principales
Les fonctionnalités clés de `awk print` sont les suivantes :
- Affichage de lignes entières ou de champs spécifiques
- Utilisation de variables intégrées (NR, NF, FS, RS, etc.)
- Combinaison de chaînes de caractères et de champs pour l'affichage
- Support de l'affichage conditionnel
- Ajout d'un saut de ligne après chaque sortie par défaut
Exemples d'utilisation
Divers exemples utilisant l'instruction `print` d'`awk`. Supposons que le fichier d'exemple `data.txt` contienne ce qui suit : `apple 10 red banana 20 yellow orange 15 orange`
Afficher la ligne entière
awk '{print}' data.txt
Affiche toutes les lignes du fichier d'entrée telles quelles.
Afficher le premier champ
awk '{print $1}' data.txt
Affiche uniquement le premier champ ($1) de chaque ligne.
Afficher plusieurs champs et chaînes de caractères combinés
awk '{print "Item:", $1, "Color:", $3}' data.txt
Affiche le premier et le troisième champ séparés par une virgule, et ajoute une chaîne de caractères personnalisée.
Afficher lorsque des conditions spécifiques sont remplies
awk '$2 > 15 {print}' data.txt
Affiche uniquement les lignes où le deuxième champ ($2) est supérieur à 15.
Afficher le dernier champ
awk '{print $NF}' data.txt
Affiche uniquement le dernier champ ($NF) de chaque ligne. NF est une variable intégrée représentant le nombre total de champs dans la ligne actuelle.
Afficher après avoir modifié le délimiteur de champ
echo "fruit,100,red\nbanana,200,yellow" | awk -F',' '{print $1, $2}'
Définit le délimiteur de champ d'entrée (-F) sur une virgule (,) et affiche le premier et le deuxième champ. (Fichier d'exemple : `fruit,100,red\nbanana,200,yellow`)
Conseils et précautions
Conseils et points à considérer pour utiliser `awk print` plus efficacement.
Conseils de performance et d'utilisation
- Utiliser `printf` au lieu de `print` : `printf` permet un contrôle fin du formatage, similaire au `printf` du langage C. `print` insère par défaut l'OFS (Output Field Separator) entre chaque argument et l'OSR (Output Record Separator, saut de ligne par défaut), tandis que `printf` nécessite que l'utilisateur spécifie le format.
- Spécifier clairement le délimiteur de champ (`-F`) : Si le délimiteur de champ du fichier d'entrée n'est pas un espace, utilisez l'option `-F` pour garantir une séparation correcte des champs.
- Gérer la logique complexe dans des fichiers de script `awk` : Si le script devient long, il est préférable de le gérer dans un fichier séparé en utilisant `awk -f script.awk data.txt` pour une meilleure lisibilité et maintenabilité.
- Utiliser les variables intégrées : L'utilisation des variables intégrées puissantes d'`awk` telles que `NR` (numéro d'enregistrement actuel), `NF` (nombre de champs dans l'enregistrement actuel), `FS` (délimiteur de champ d'entrée), `RS` (délimiteur d'enregistrement d'entrée) permet un traitement plus flexible.