Apprendre Linux

Commande Linux awk avec 10 exemples

Commande Linux awk avec 10 exemples

Les systèmes informatiques ont toujours été utilisés pour analyser des données précieuses stockées dans de simples fichiers texte. À leur tour, les systèmes informatiques eux-mêmes sont gérés via des fichiers journaux. Ce qui est potentiellement commun dans ces deux situations, c'est qu'elles contiennent une grande quantité de données, qui doivent souvent être rationalisées avant de réellement lire les données ; sinon c'est juste déroutant.

Par exemple, si vous lisez des données organisées sous forme de tableau, vous voulez des colonnes, vous n'en voulez pas d'autres.

Cette exigence était désastreuse même à l'époque, et par conséquent, le projet GNU possède un outil incroyable qui aide les utilisateurs à filtrer et extraire des données pour une meilleure expérience. Cet outil est AWK.

Histoire

AWK est en fait un langage de programmation dédié au traitement de texte. Il est utilisé pour l'extraction de données dans des modèles spécifiques. Il a été développé dans les années 1970 par les Bell Labs, par Alfred Aho, Peter Weinberger et Brian Kernighan (les initiales de leur nom ont donné naissance au nom). Le développement d'awk ne s'est pas arrêté là. Une nouvelle version est introduite en 1985, qui a apporté de nouvelles modifications à la commande awk, notamment la possibilité de gérer plusieurs flux d'entrée, des expressions régulières calculées, des fonctions définies par l'utilisateur et bien plus encore! Bref, la mise à jour en a fait un langage de programmation plus puissant.

Awk a une implémentation différente. Pour s'assurer qu'il existe une mise en œuvre appropriée qui offre une approche standard, Paul Rubin a écrit gawk en 1986. Cela a bien fonctionné avec le nouveau awk.

En dehors de cela, en 1989 System V Release, de nouvelles fonctionnalités ont été ajoutées. Les développeurs ont également amélioré ses coins sombres, ce qui permet aux programmeurs et aux utilisateurs de mieux l'utiliser. Le dernier changement s'est produit en 1997 lorsque awk a vu l'accès au réseau - offrant aux utilisateurs la possibilité de résoudre les problèmes à distance.

La dernière réécriture effectuée en 2011 lorsque John Haque a réécrit les internes de gawk.

Ce que vous pouvez faire avec AWK

À présent, il devrait être quelque peu clair de quoi AWK est capable de. C'est un langage de script à usage général qui vous permet de gérer le traitement de texte. Les utilisateurs avancés peuvent également l'utiliser pour l'analyse et la création de rapports.

AWK n'est pas comme les autres langages de programmation car il est piloté par les données, plutôt qu'un langage de programmation procédural. Cela signifie que vous pouvez l'utiliser efficacement pour effectuer des actions contre la saisie de texte. En bref, vous pouvez l'utiliser pour transformer des données, les saisir et également les envoyer en sortie standard.

En bref, vous pouvez utiliser AWK pour effectuer des opérations simples telles que diviser chaque ligne d'entrée en champs, analyser un fichier ligne par ligne, effectuer une ou plusieurs actions sur les lignes de correspondance, etc! La commande awk est également utile pour les rapports au format de procédure et transforme les fichiers de données. De plus, vous avez également accès à des constructions de programmation telles que des opérations conditionnelles et des boucles, des chaînes et des opérations arithmétiques et des lignes de sortie de format.

Comment fonctionne awk

Dans cette section, nous allons apprendre comment fonctionne awk. Il est important d'apprendre que awk a différentes implémentations. Pour nous assurer que nous sommes sur la même longueur d'onde, nous discuterons et utiliserons l'implémentation GNU - connue sous le nom de gawk. Dans la plupart des cas, le gawk est lié à l'interpréteur awk.

Pour bien comprendre, nous devons d'abord comprendre les enregistrements et les champs.

Il est bien connu qu'awk peut traiter des flux textuels et des fichiers de données. Pour traiter les données, l'entrée est divisée en champs et enregistrements. Pour s'assurer que awk ne soit pas submergé, un enregistrement est traité à un moment donné jusqu'à ce que la fin de l'entrée soit atteinte. De plus, les enregistrements sont encore divisés en sections simples à l'aide d'un séparateur d'enregistrements utilisant des caractères. De plus, chaque enregistrement est séparé par des caractères de nouvelle ligne. Cela signifie que chaque ligne peut être qualifiée d'enregistrement.

Vous pouvez choisir de définir un nouveau séparateur d'enregistrements à l'aide de la variable RS.

Vient ensuite le séparateur de champs. Comme d'habitude, chaque enregistrement a des champs, et ils sont séparés à l'aide du séparateur de champs. Le séparateur de champ peut être un espace, des tabulations, des caractères de nouvelle ligne et un espace. De plus, chaque champ est référencé à l'aide du symbole $, alors que le numéro de champ commence par 1. Cela signifie que le premier champ peut être noté $1 tandis que le deuxième champ est noté $2. De cette façon, le nième champ peut être noté $nf.

Le programme awk

Le deuxième aspect d'awk est le programme awk. Si vous voulez travailler avec awk, vous devez écrire un programme qui permet à la commande d'exécuter ou de traiter le texte. Le programme awk offre de nombreuses fonctionnalités utilisant des règles et des fonctions définies par l'utilisateur. Les règles fonctionnent avec une paire d'actions ou un modèle, et les règles sont séparées par des points-virgules ou une nouvelle ligne.

Au cas où vous vous poseriez la question, un programme awk ressemblera à ci-dessous.

modèle  action  modèle  action … 

En bref, le programme awk fonctionne en faisant correspondre les enregistrements en fonction de modèles. Si le motif est trouvé dans l'enregistrement, il le traitera. Sinon, l'ensemble de l'enregistrement est mis en correspondance pour s'assurer que quelque chose correspond en fonction des règles.

Exemples de commandes awk

Maintenant que nous avons une bonne compréhension de la commande awk et de son fonctionnement, il est maintenant temps pour nous de consulter quelques exemples de commandes awk.

Si vous n'avez jamais utilisé awk auparavant, vous voudrez peut-être savoir qu'awk peut être utilisé avec des options comme ci-dessous :

fichier de programme d'options awk

Les options que vous pouvez utiliser avec awk sont les suivantes :

Exemple 1 : lire des scripts AWK

L'une des façons les plus courantes d'utiliser awk est de lire des scripts. En tant qu'utilisateur Linux, vous pouvez créer un script awk en utilisant les guillemets simples.

Pour ce faire, vous devez taper la commande suivante dans le terminal.

$awk 'print "Bienvenue dans Hello, World -- Tutoriel AWK"'

Dans l'exemple ci-dessus, ce que vous tapez, il sera renvoyé à l'écran lui-même. La commande continuera à s'exécuter jusqu'à ce que vous la terminiez en appuyant sur CTRL + D.

Exemple 2 : Utilisation de plusieurs commandes

Une autre utilisation courante de awk consiste à utiliser plusieurs commandes. En tant qu'utilisateur, vous souhaiterez peut-être combiner deux commandes awk en une seule pour obtenir le résultat souhaité. Dans cet exemple, nous allons sortir une chaîne, puis remplacer le deuxième mot de la chaîne par une nouvelle entrée.

$echo "Bonjour le monde" | awk '$2 = "Univers ; print $0"'

Dans l'exemple ci-dessus, nous avons d'abord fait écho « Hello, World » au terminal. Ensuite, nous avons concaténé une autre commande awk où nous avons remplacé le deuxième mot par Universe - puis nous avons finalement sorti la chaîne, qui est Hello Universe.

Exemple 3 : Utilisation d'une variable

Les variables vous permettent de stocker des informations et d'y accéder. Si vous avez déjà utilisé des langages de programmation, vous les connaissez sûrement. Dans le cas d'awk, vous l'utilisez pour traiter des fichiers texte. En utilisant les variables, vous pouvez accéder à certains champs de données dans le fichier comme ci-dessous.

À cette fin, nous avons créé un nouveau fichier texte, mynewfile, où nous avons saisi des lignes aléatoires mais belles.

Ensuite, vous devez exécuter la commande, comme indiqué ci-dessous.

awk 'print $1' monnouveaufichier

Comme vous pouvez le voir, il génère cette variable particulière qui affiche ce champ à partir du fichier. Aussi, vous devriez voir l'erreur que j'ai faite.

Exemple 4 : prétraitement AWK

Avec la commande awk, vous pouvez ajouter un prétraitement. Pour ce faire, vous devez utiliser le mot-clé BEGIN.

Si vous lisez attentivement, nous avons créé un nouveau fichier ci-dessus. Essayons d'utiliser le prétraitement awk pour présenter le contenu du fichier.

La commande pour cela est comme ci-dessous.

awk 'awk BEGIN print "Le contenu du fichier :" > print $0' , mynewfile

L'exemple de capture d'écran ci-dessus n'est pas correct. J'ai utilisé "Begin" au lieu de "BEGIN", c'est pourquoi vous ne voyez pas l'instruction print s'exécuter. Je vous laisse essayer et voir comment va votre résultat!

Exemple 5 : Lecture de script à partir d'un fichier

Celui-ci est délicat. Ici, vous pouvez utiliser le script awk pour lire un fichier.

Nous créons un nouveau script qui contient les éléments suivants.

print $1 "l'univers commence à " $6"

Nous avons enregistré le fichier en tant que newscript.

Maintenant, exécutez la commande suivante sur le terminal.

$awk -F: -f newscript /etc/passwd

Fascinant, c'est vrai!

Exemple 6 : Post-traitement AWK

Ensuite, nous examinons le post-traitement AWK. Cela fonctionne de manière similaire au pré-traitement, mais cette fois, le post-traitement utilise la commande END.

$ awk 'BEGIN print "Le contenu du fichier commence maintenant :" > > print $0 > > END print "Le fichier se termine"' mynewfile

Exemple 7 : Variables définies par l'utilisateur

Vous pouvez également utiliser des variables dans la commande awk sans utiliser de nombre ou de signe dollar.

Ci-dessous un exemple.

$awk ' BEGIN test = "Bienvenue dans FossLinux Awesome Linux Family" print test  '

Exemple 8 : Fonctions intégrées

Les commandes awk sont également utiles avec leurs fonctions intégrées. Par exemple, vous pouvez utiliser des fonctions mathématiques, ainsi que des fonctions de chaîne.

$ awk 'BEGIN x - "fossLinux"; imprimer toupper(x)'
$ awk 'BEGIN x=exp(35); imprimer x'

Exemple 9 : Formatage de l'impression

Vous pouvez également formater la fonction printf fournie avec awk. Il existe de nombreux modificateurs que vous pouvez utiliser. Par exemple, vous pouvez utiliser c pour imprimer sous forme de chaîne ; vous pouvez également utiliser d pour une valeur entière, et ainsi de suite.

$ awk 'BEGIN  x = 200 * 200 printf "Le résultat est : %e\n", x '

Exemple 10 : Commandes structurées

Vous pouvez également utiliser des commandes structurées telles que if, else, while ou for loop. Voyons l'exemple ci-dessous pour la commande if.

$ awk 'if ($1 > 20) print $2' monnouveaufichier

Conclusion

Cela nous amène à la fin de notre tutoriel de commande awk. Alors, l'avez-vous trouvé utile et allez-vous l'utiliser pour votre travail? Commentez ci-dessous et laissez-nous savoir.

Comment utiliser le moteur de triche GameConqueror sous Linux
L'article couvre un guide sur l'utilisation du moteur de triche GameConqueror sous Linux. De nombreux utilisateurs qui jouent à des jeux sur Windows u...
Meilleurs émulateurs de console de jeu pour Linux
Cet article répertorie les logiciels d'émulation de console de jeu populaires disponibles pour Linux. L'émulation est une couche de compatibilité logi...
Meilleures distributions Linux pour les jeux en 2021
Le système d'exploitation Linux a parcouru un long chemin depuis son apparence originale, simple et basée sur le serveur. Ce système d'exploitation s'...