Exemples d'utilisation de la script Gawk
Commencer avec Gawk
Si vous utilisez les dernières versions de Linux, gawk devrait être installé par défaut. Vous pouvez vérifier en consultant sa version.
Il existe différentes manières d'utiliser gawk. Les fonctionnalités communes sont les suivantes :
- Formater les lignes de sortie
- Transformation des fichiers de données
- Scanner les fichiers ligne par ligne
- Diviser la ligne d'entrée en champs
- Produire des rapports formatés
- Triage des données
La syntaxe de base pour gawk est :
gawk [POSIX / GNU style options] -f program_file [ -- ] file
gawk [POSIX / GNU style options] [ -- ] ‘program’ file ...Pour utiliser gawk, vous pouvez soit utiliser l'option -f pour spécifier un fichier de script, soit spécifier le script directement dans la ligne de commande.
Il y a trois options importantes à noter lors de l'utilisation de gawk :
1. -f fichier, –file=fichier : Utilisé lorsque vous souhaitez utiliser gawk et lire des commandes à partir d'un fichier. Le fichier est le script.
2. -v var=val, –assign=var=val : Utilisé lorsque vous devez assigner une valeur à une variable avant d'exécuter un script.
3. -F fs, –séparateur-de-champ=fs : La valeur de la variable prédéfinie FS est utilisée comme séparateur pour le champ d'entrée.
Variables Intégrées
Gawk propose des variables intégrées telles que :
FS: Utilisé lors de la division des fichiers et contient le caractère séparateur de champ.
RS: Contient le séparateur de caractères actuel.
OFS: Contient le séparateur de champ de sortie qui sépare les champs que AWK imprime.
NF : Le nombre de champs pour l'enregistrement d'entrée est stocké dans le NF.
ORS : Contient le séparateur de champ de sortie qui sépare les lignes de sortie imprimées par AWK.
NR: Contient le nombre total de lignes d'entrée.
Dans l'exemple précédent, nous utilisons * comme séparateur pour les lignes d'entrée dans le fichier.
Exemple d'utilisation de Gawk
1. -F
Pour trier un fichier texte et imprimer les trois premiers champs séparés par des deux-points, utilisez la commande suivante. Notez que nous utilisons le passwd comme notre fichier ici :
gawk -F: ‘{print $1; print $2; print $3}’ /etc/passwdIci, notre séparateur est un deux-points. Comme nous voulons les trois premiers champs, vous les spécifiez comme montré dans l'exemple précédent. Vous pouvez l'ajuster et utiliser un séparateur différent et un nombre de champs différent.
2. -f
Pour spécifier la source du programme awk à partir d'un fichier, utilisez l'option -f suivie du fichier :
gawk -F: -f file1.txt /etc/passwd3. Impression du contenu d'un fichier
L'utilisation de gawk sur un fichier imprime toutes les lignes de données dans le fichier.
4. Travailler avec des modèles
Vous pouvez également utiliser gawk et imprimer uniquement les lignes correspondant à un motif donné. Par exemple, pour imprimer une ligne contenant un mot particulier, dans notre cas le mot est kim, la commande serait :
gawk ‘/kim/ {print}’ file-nameIci, le motif peut également être un caractère. Par exemple, pour imprimer toutes les lignes contenant deux-points, la commande serait comme dans l'image suivante :
Vous pouvez également spécifier les lignes spécifiques à imprimer. Par exemple, pour imprimer les lignes contenant des caractères spécifiques tels que ceux supérieurs à 6, la syntaxe est :
gawk ‘length ($0) > 6’ file-name5. Diviser les lignes en champs
Gawk, par défaut, imprime chaque champ lors de l'impression des lignes dans un fichier. Cependant, vous pouvez spécifier quel champ imprimer. Le premier champ est stocké dans le $1 et la ligne entière est représentée par $0. Par défaut, l'ensemble de la ligne est imprimé à moins que vous ne précisiez de séparer les champs en fonction des espaces.
Par exemple, pour séparer les lignes et n'imprimer que le deuxième champ de chaque ligne, la commande serait :
gawk ‘{print $2}’ file-namePour ajouter les numéros de ligne, ajoutez la variable NR .
Le nouveau commandement serait :
gawk ‘{print NR, $2}’ file-name6. Obtenez le nombre de lignes
Vous devrez peut-être obtenir le nombre total de lignes pour de gros fichiers, et vous pouvez y parvenir en utilisant la syntaxe suivante :
gawk ‘END {print NR}’ file-nameConclusion
Savoir utiliser gawk sous Linux est amusant et utile, surtout lorsqu'il s'agit de données textuelles. Vous pouvez utiliser les différents motifs pour extraire et manipuler les lignes de données. Espérons que les exemples abordés dans cet article vous donneront un bon départ et vous ouvriront les yeux sur l'utilisation de gawk pour différentes activités.









