Awk - fonctionnalités avancées
- 4055
- 910
- Jade Muller
AWK est un puissant outil de traitement de texte et de manipulation qui fournit une gamme de fonctionnalités avancées pour les utilisateurs expérimentés. Certaines des fonctionnalités avancées les plus utiles de AWK comprennent des expressions régulières, des instructions conditionnelles, des tableaux, des fonctions et des fonctions de manipulation de chaîne. Avec ces fonctionnalités, AWK fournit un ensemble d'outils puissant et flexible qui peut être utilisé pour un large éventail de tâches, y compris l'analyse des fichiers journaux, la surveillance du système, l'extraction et la transformation des données et la génération de rapports.
Dans cet article, nous explorerons certaines des fonctionnalités AWK les plus utiles et les plus puissantes pour les utilisateurs avancés. Ce tutoriel couvre:
- En utilisant des expressions régulières dans awk
- En utilisant les instructions conditionnelles
- Travailler avec des tableaux dans awk
- Travailler avec des fonctions dans awk
- Manipulation de cordes avec awk
Commençons l'article:
Expressions régulières
L'une des caractéristiques les plus puissantes de AWK est son support pour les expressions régulières. Les expressions régulières sont des modèles qui décrivent des ensembles de chaînes et peuvent être utilisés pour faire correspondre, rechercher et manipuler des données de texte.
Par exemple, la commande suivante imprimera toutes les lignes contenant le mot «erreur» dans un fichier journal:
awk '/ error /' logfile.SMS1 | awk '/ error /' logfile.SMS |
Cette commande utilisera AWK pour rechercher dans le fichier journal des lignes qui contiennent le mot «erreur» et impriment ces lignes à la console.
Expressions conditionnelles
AWK prend en charge les instructions conditionnelles, qui vous permettent d'exécuter différentes commandes en fonction des valeurs des variables ou des expressions.
Par exemple, la commande suivante imprimera «même» ou «impair» pour chaque numéro dans un fichier, selon qu'il est uniforme ou impair:
awk 'if ($ 1% 2 == 0) imprimer $ 1, "même"; sinon imprimer 1 $, "Odd" 'Nombres.SMS1 | awk 'if ($ 1% 2 == 0) imprimer $ 1, "même"; sinon imprimer 1 $, "Odd" 'Nombres.SMS |
Cette commande utilisera AWK pour vérifier si chaque numéro dans le fichier est uniforme ou impair, et imprimera le résultat à la console.
Tableaux
AWK prend également en charge les tableaux, qui vous permettent de stocker et de manipuler des ensembles de valeurs ou de structures de données.
Par exemple, la commande suivante comptera le nombre d'occurrences de chaque mot dans un fichier texte:
awk 'for (i = 1; i<=NF; i++) words[$i]++ END for (w in words) print w, words[w] ' textfile.txt1 | awk 'for (i = 1; i<=NF; i++) words[$i]++ END for (w in words) print w, words[w] ' textfile.txt |
Cette commande utilisera awk pour traverser chaque mot dans le fichier et stocker le compte de chaque mot dans un tableau. Le résultat final est imprimé sur la console.
Les fonctions
AWK prend en charge les fonctions définies par l'utilisateur, qui vous permettent de créer un code réutilisable pour les tâches courantes.
Par exemple, la commande suivante utilisera une fonction définie par l'utilisateur pour convertir les températures de Fahrenheit en Celsius:
Fonction awk 'f2c (f) return (f-32) * (5/9) print $ 1, f2c ($ 2)'.SMS1 | Fonction awk 'f2c (f) return (f-32) * (5/9) print $ 1, f2c ($ 2)'.SMS |
Cette commande utilisera AWK pour lire les températures dans Fahrenheit à partir d'un fichier et les convertir en Celsius à l'aide d'une fonction définie par l'utilisateur.
Manipulation de cordes
AWK prend en charge une gamme de fonctions de manipulation de chaînes, qui vous permettent de modifier, de concaténer et de partager les chaînes.
Par exemple, la commande suivante divisera une liste de valeurs séparée par des virgules en champs distincts:
awk -f ', "print $ 1, $ 2' data.CSV1 | awk -f ',' 'print $ 1, $ 2' data.CSV |
Cette commande utilisera AWK pour diviser un fichier séparé en virgule en champs séparés et imprimer les deux premiers champs à la console.
Conclusion
AWK fournit une gamme de fonctionnalités avancées pour les utilisateurs expérimentés, y compris les expressions régulières, les déclarations conditionnelles, les tableaux, les fonctions et la manipulation de chaînes. En maîtrisant ces fonctionnalités, vous pouvez devenir un expert de traitement et de manipulation de texte plus efficace et efficace, et gagner du temps et des efforts dans votre travail.
- « Liste de contrôle de la maintenance du serveur
- Meilleures pratiques et conseils pour écrire des scripts shell en tant que pro »