Présentation d'AWK
AWK est un acronyme dérivé des noms de ses trois développeurs : A. V. Aho, P. J. Weinberger et B. W. Kernighan. C'est un langage de manipulation de données largement utilisé dans les systèmes de type Unix. Il lit les données ligne par ligne à partir de fichiers ou de l'entrée standard et les traite en fonction de motifs et d'actions spécifiés.
Comment fonctionne AWK
AWK suit une structure de base : `motif { action }`. Chaque fois qu'une ligne est lue, si le `motif` correspond, l'`action` est effectuée. S'il n'y a pas de motif, l'action est effectuée pour chaque ligne, et s'il n'y a pas d'action, les lignes correspondantes sont imprimées telles quelles.
Fonctionnalités d'AWK
- Traitement ligne par ligne: Lit et traite le fichier d'entrée une ligne (enregistrement) à la fois.
- Accès champ par champ: Divise chaque ligne en champs ($, $2, ...) séparés par des espaces (délimiteur par défaut) et permet d'y accéder.
- Correspondance de motifs: Peut effectuer des opérations uniquement sur les lignes qui correspondent à un motif spécifique.
- Capacités de programmation: Fournit des fonctionnalités de programmation de base telles que des variables, des instructions conditionnelles, des boucles et des fonctions.
- Génération de rapports: Peut facilement générer des rapports texte complexes.
Commandes et options clés d'AWK
Traitez les données texte avec précision en utilisant les différentes options, variables intégrées et motifs spéciaux d'AWK.
1. Utilisation de base et options d'entrée/sortie
2. Variables intégrées
3. Motifs spéciaux
Commande générée :
Essayez de combiner les commandes.
Description:
`awk` Exécute la commande.
Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.
Exemples d'utilisation
Découvrez la magie du traitement de données texte à travers divers exemples pratiques de commandes AWK.
Imprimer uniquement la deuxième colonne d'un fichier
awk '{print $2}' data.txt
Extrait et imprime uniquement le deuxième champ (colonne) de chaque ligne du fichier `data.txt`. (Délimiteur par défaut : espace)
Imprimer des colonnes spécifiques d'un fichier CSV
awk -F',' '{print "Nom: " $1 ", Score: " $3}' scores.csv
Imprime le nom (premier champ) et le score (troisième champ) du fichier `scores.csv`, qui est séparé par des virgules (`,`).
Imprimer uniquement les lignes avec un motif spécifique
awk '/ERROR/{print}' log.txt
Imprime toutes les lignes contenant la chaîne 'ERROR' du fichier `log.txt`.
Imprimer avec les numéros de ligne
awk '{print NR ": " $0}' names.txt
Imprime chaque ligne du fichier `names.txt` précédée de son numéro de ligne.
Changer la valeur du deuxième champ dans les lignes où le premier champ est 'apple'
awk '$1 == "apple" {$2 = "fruit"; print}' inventory.txt
Trouve les lignes dans le fichier où le premier champ est 'apple', change le deuxième champ en 'fruit', puis imprime la ligne entière.
Afficher les messages avant et après le traitement du fichier et calculer la somme totale
awk 'BEGIN {total = 0; print "Début du calcul !"} {total += $1} END {print "Somme totale : " total}' numbers.txt
Additionne tous les nombres du fichier `numbers.txt` et affiche des messages au début et à la fin. (Suppose qu'il n'y a qu'un seul nombre par ligne)