accueil > Traitement et recherche de texte > awk-print

awk print : sortie de données textuelles

Guide sur l'instruction `print` pour afficher des données dans la commande `awk`. `print` est l'une des fonctionnalités clés des scripts `awk`, utilisée pour envoyer du texte traité à partir de fichiers ou de flux vers la sortie standard. Il permet d'afficher de manière flexible des champs spécifiques, des lignes entières ou des chaînes de caractères personnalisées.

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.

Commandes de la même catégorie