Awk - une introduction et un tutoriel
- 4251
- 665
- Jade Muller
Lorsque vous travaillez avec Linux, l'un des outils les plus puissants disponibles pour le traitement de texte est la commande awk. Il s'agit d'un outil de ligne de commande polyvalente qui peut être utilisé pour un large éventail de tâches, y compris la recherche, le filtrage et la manipulation de données de texte.
Dans cet article, nous couvrirons les bases de AWK, y compris sa syntaxe, comment l'utiliser sur la ligne de commande et quelques exemples de base de la façon dont il peut être utilisé pour traiter les données de texte.
Qu'est-ce que Awk?
Awk est un langage de programmation conçu pour le traitement de texte et l'extraction de données. Il a été développé à Bell Labs dans les années 1970 et est maintenant une caractéristique standard de la plupart des systèmes d'exploitation basés sur UNIX, y compris Linux.
AWK est particulièrement utile pour le traitement des fichiers texte, car il vous permet de rechercher, de filtrer et de manipuler des données en fonction de modèles ou de conditions spécifiques. Il fonctionne en lisant les données d'un fichier ou d'une entrée standard, en appliquant un ensemble de règles ou de commandes à ces données, puis en imprimant les résultats.
Syntaxe awk
La syntaxe de base d'une commande awk est la suivante:
Fichier awk 'motif action'1 | Fichier awk 'motif action' |
Ici, le modèle spécifie les conditions qui doivent être remplies pour que l'action soit effectuée, et le fichier spécifie le fichier sur lequel la commande doit fonctionner. Si aucun fichier n'est spécifié, AWK lira les données de l'entrée standard (i.e., le clavier).
Le motif peut être une expression régulière ou une plage de valeurs, et l'action peut être n'importe quelle commande awk valide, y compris les instructions d'impression, les variables et les boucles.
Instructions à une ligne awk
L'une des grandes choses à propos de AWK est qu'elle peut être utilisée pour écrire des lignes de ligne - des commandes courtes et puissantes qui peuvent être exécutées directement à partir de la ligne de commande.
Voici quelques exemples de lineurs awk que vous pouvez utiliser pour effectuer des tâches de traitement de texte courantes:
- Imprimez la première colonne d'un fichier CSV:
awk -f "," 'print $ 1' fichier.CSV
- Imprimez des colonnes spécifiques d'un fichier CSV:
awk -f "," 'print $ 1, $ 3' fichier.CSV
Cette commande utilise l'option -f pour spécifier que le fichier est séparé des virgules, puis imprime les première et troisième colonnes du fichier.
- Comptez le nombre de lignes dans un fichier:
Fichier awk 'end imprimer nr'.SMS
- Imprimez toutes les lignes qui correspondent à un modèle spécifique ::
Fichier awk '/ motive / print'.SMS
- Comptez le nombre d'occurrences d'un modèle dans un fichier:
awk '/ patron / count ++ end print count' fichier.SMS
- Imprimez la dernière ligne d'un fichier:
fichier awk 'end print'.SMS
- Imprimez la valeur moyenne d'une colonne dans un fichier:
awk 'sum + = $ 2 end imprimer sum / nr' fichier.SMS
- Imprimez la moyenne de la deuxième colonne dans un fichier:
awk 'sum + = $ 2 end imprimer sum / nr' fichier.SMS
- Imprimez les lignes dans l'ordre inverse:
awk 'a [i ++] = $ 0 end for (j = i-1; j> = 0;) imprimer un fichier [j--]'.SMS
- Imprimez le contenu d'un fichier:
fichier awk 'print'.SMS
Cette commande lit simplement le contenu du fichier.txt et imprime chaque ligne à l'écran.
- Recherchez des lignes contenant un modèle spécifique:
Fichier awk '/ error / print'.enregistrer
Cette commande recherche des lignes qui contiennent le mot «erreur» et les impriment à l'écran.
Vous aimerez peut-être: Awk Arithmetic Operations: A débutant Guide des méthodes de calcul de base
Awk pour l'administration du système
Voyons maintenant quelques exemples pratiques de la façon dont Awk peut être utilisé pour les tâches d'administration du système.
Analyse des fichiers journaux
Les fichiers journaux sont un outil essentiel pour les administrateurs système afin de surveiller les performances du système et de diagnostiquer les problèmes. Cependant, ils peuvent être difficiles à lire et à analyser, surtout lorsqu'ils contiennent de grandes quantités de données.
Awk peut être utilisé pour analyser les fichiers journaux et extraire des informations pertinentes. Par exemple, la commande suivante extrait toutes les adresses IP à partir d'un fichier journal d'accès Apache:
awk 'print $ 1' Access.enregistrer1 | awk 'print $ 1' Access.enregistrer |
Cette commande imprimera la première colonne du fichier journal d'accès, qui contient l'adresse IP du client.
Surveillance des ressources du système
AWK peut également être utilisé pour surveiller les ressources système, telles que le processeur et l'utilisation de la mémoire. Par exemple, la commande suivante affichera les 5 principaux processus consommant le plus de processeur:
PS aux Aux | awk 'print $ 2, $ 3, $ 11' | Trier -k2rn | tête -N51 | PS aux Aux | awk 'print $ 2, $ 3, $ 11' | Trier -k2rn | tête -N5 |
Cette commande utilisera PS pour répertorier tous les processus en cours d'exécution, puis utiliser AWK pour extraire l'ID de processus, l'utilisation du processeur et le nom du processus. La commande de tri est utilisée pour trier la sortie par utilisation du processeur, et la commande de tête est utilisée pour afficher uniquement les 5 premiers résultats.
Génération de rapports
Les administrateurs système doivent souvent générer des rapports sur divers aspects des performances du système et de l'utilisation. AWK peut être utilisé pour extraire et résumer les données à partir de fichiers journaux, de fichiers système et d'autres sources.
Par exemple, la commande suivante générera un rapport sur l'utilisation du disque de tous les systèmes de fichiers montés:
DF -H | awk 'print $ 1, $ 5'1 | DF -H | awk 'print $ 1, $ 5' |
Cette commande utilisera DF pour répertorier tous les systèmes de fichiers montés, puis utiliser AWK pour extraire le nom du système de fichiers et le pourcentage d'espace disque utilisé.
Modification des fichiers de configuration
Les fichiers de configuration sont un élément essentiel de l'administration du système et doivent souvent être modifiés pour optimiser les performances du système ou résoudre les problèmes. Awk peut être utilisé pour modifier les fichiers de configuration en place, sans avoir besoin d'édition manuelle.
Par exemple, la commande suivante remplacera toutes les occurrences de «localhost» par «exemple.com »dans le fichier de configuration Apache:
awk 'gsub (/ localhost /, "Exemple.com "); print '/ etc / apache2 / apache2.conf> / tmp / apache2.confli1 | awk 'gsub (/ localhost /, "Exemple.com "); print '/ etc / apache2 / apache2.conf> / tmp / apache2.confli |
Cette commande utilisera AWK pour rechercher la chaîne «localhost» dans le fichier de configuration Apache, et la remplacer par «Exemple.com ». Le fichier de configuration modifié est ensuite écrit dans un fichier temporaire.
Conclusion
Awk est un outil puissant pour le traitement de texte et l'extraction de données dans Linux. Il est relativement facile à apprendre et fournit un large éventail de capacités qui peuvent être utilisées pour manipuler et transformer des données de texte.
Dans cet article, nous avons couvert les bases de AWK, y compris sa syntaxe, comment l'utiliser sur la ligne de commande et quelques exemples de base de la façon dont il peut être utilisé pour traiter les données de texte. Nous avons également couvert AWK One-Liners, qui sont des commandes puissantes qui peuvent être utilisées pour effectuer des tâches de traitement de texte courantes avec un minimum d'effort.
Avec ces connaissances, vous pouvez commencer à explorer des fonctionnalités plus avancées de AWK, y compris des expressions, des variables et des fonctions régulières. En maîtrisant AWK, vous pouvez devenir un utilisateur Linux plus efficace et efficace, capable de traiter facilement de grandes quantités de données de texte.
- « Exécution du travailleur de la file d'attente Laravel en tant que service Systemd
- Calculer la différence entre deux dates en bash »