Awk - fonctionnalités avancées

Awk - fonctionnalités avancées

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:

  1. En utilisant des expressions régulières dans awk
  2. En utilisant les instructions conditionnelles
  3. Travailler avec des tableaux dans awk
  4. Travailler avec des fonctions dans awk
  5. 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.SMS
1awk '/ 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.SMS
1awk '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.txt
1awk '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)'.SMS
1Fonction 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.CSV
1awk -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.