AWK convient à la recherche et au traitement de modèles. Le script s'exécute pour rechercher un ou plusieurs fichiers afin d'identifier les modèles correspondants et si lesdits modèles effectuent des tâches spécifiques. Dans ce guide, nous examinons la commande AWK Linux et voyons ce qu'elle peut faire.
Quelles opérations AWK peut-il effectuer ?
- Analyser les fichiers ligne par ligne
- Diviser chaque ligne d'entrée en champs
- Comparaison des lignes et des champs d'entrée avec des modèles
- Exécution d'actions spécifiées sur les lignes correspondantes
Utilité de la commande AWK
- Modification des fichiers de données
- Produire des rapports formatés
Concepts de programmation pour la commande awk
- Formater les lignes de sortie
- Conditionnel et boucles
- Opérations arithmétiques et sur les chaînes
Syntaxe AWK
$ awk options 'selection _criteria {action }' input-file > output-file
Pour en savoir plus sur l'utilisation d'AWK, nous allons utiliser le fichier texte appelé file.txt
1ère colonne => Article,
2ème colonne => Modèle
3ème colonne => Pays
4ème colonne => Coût
Exemples de commandes Awk
Imprimer des colonnes spécifiques
Pour imprimer les 2e et 3e colonnes, exécutez la commande ci-dessous.
$ awk '{print $2 "\t" $3}' file.txt
Sortie
Imprimer toutes les lignes d'un fichier
Si vous souhaitez lister toutes les lignes et colonnes d'un fichier, exécutez
$ awk ' {print $0}' file.txt
Sortie
Imprimer toutes les lignes qui correspondent à un motif spécifique
si vous voulez imprimer des lignes qui correspondent à un certain modèle, la syntaxe est comme indiqué
$ awk '/variable_to_be_matched/ {print $0}' file.txt
Par exemple, pour faire correspondre toutes les entrées avec la lettre "o", la syntaxe sera
$ awk '/o/ {print $0}' file.txt
Sortie
Pour faire correspondre toutes les entrées avec la lettre "e"
$ awk '/e/ {print $0}' file.txt
Sortie
Imprimer des colonnes qui correspondent à un modèle spécifique
Lorsque AWK localise une correspondance de modèle, la commande exécute l'intégralité de l'enregistrement. Vous pouvez modifier la valeur par défaut en émettant une instruction pour afficher uniquement certains champs.
Par exemple :
$ awk '/a/ {print $3 "\t" $4}' file.txt
La commande ci-dessus imprime les 3ème et 4ème colonnes où la lettre "a" apparaît dans l'une des colonnes
Sortie
Compter et imprimer le motif correspondant
Vous pouvez utiliser AWK pour compter et imprimer le nombre de lignes pour chaque correspondance de modèle. Par exemple, la commande ci-dessous compte le nombre d'occurrences d'un modèle correspondant apparaît
$ awk '/a/{++cnt} END {print "Count = ", cnt}' file.txt
Sortie
Imprimer des lignes avec plus ou moins d'un nombre de caractères
AWK a une fonction de longueur intégrée qui renvoie la longueur de la chaîne. À partir de la commande $0, la variable stocke la ligne entière et en l'absence d'un bloc de corps, l'action par défaut est prise, c'est-à-dire l'action d'impression. Par conséquent, dans notre fichier texte, si une ligne comporte plus de 18 caractères, la comparaison est vraie et la ligne est imprimée comme indiqué ci-dessous.
$ awk 'length($0) > 20' file.txt
Sortie
Enregistrer la sortie d'AWK dans un autre fichier
Si vous souhaitez enregistrer la sortie de vos résultats, utilisez l'opérateur de redirection>. Par exemple
$ awk '/a/ {print $3 "\t" $4}' file.txt > Output.txt
Vous pouvez vérifier les résultats en utilisant la commande cat comme indiqué ci-dessous
$ cat output.txt
Sortie
Conclusion
AWK est un autre script de programmation simple que vous pouvez utiliser pour manipuler du texte dans des documents ou exécuter des fonctions spécifiques. Les commandes partagées sont quelques-unes ou les nombreuses que vous devez encore connaître ou rencontrer.