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 façons d'utiliser gawk. Les fonctionnalités courantes sont les suivantes :
- Formattez les lignes de sortie
- Transformation des fichiers de données
- Numérisation des fichiers ligne par ligne
- Séparer la ligne d'entrée en champs
- Produire des rapports formatés
- Trier 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 sur 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 attribuer une valeur à une variable avant d'exécuter un script.
3. -F fs, –field-separator=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 ainsi qu'un nombre différent de champs.
2. -f
Pour spécifier la source du programme awk à partir d'un fichier, utilisez le drapeau -f suivi du fichier :
gawk -F: -f file1.txt /etc/passwd3. Impression des contenus d'un fichier
L'utilisation de gawk sur un fichier imprime toutes les lignes de données dans le fichier.
4. Travailler avec des motifs
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-name
Ici, le modèle peut également être un caractère. Par exemple, pour imprimer toutes les lignes qui contiennent 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 supérieur à 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 $1 et la ligne entière est représentée par $0. Par défaut, la ligne entière est imprimée à moins que vous ne spécifiiez de séparer les champs en fonction des espaces blancs.
Par exemple, pour séparer les lignes et imprimer uniquement 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. Obtenir le nombre de lignes
Vous devrez peut-être obtenir le nombre total de lignes pour des fichiers volumineux, et vous pouvez y parvenir en utilisant la syntaxe suivante :
gawk ‘END {print NR}’ file-nameConclusion
Savoir comment utiliser gawk dans 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.









