AWK – des Exemples de Base

AWK – des Exemples de Base

Annonces

Ce chapitre décrit plusieurs utile AWK commandes et de leurs exemples appropriés. Considérons un fichier texte marques.txt à traiter avec le contenu suivant −

1) Amit Physics 802) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89

impression de colonne ou de champ

Vous pouvez demander à AWK d’imprimer uniquement certaines colonnes à partir du champ de saisie., L’exemple suivant illustre ce −

Exemple

$ awk '{print $3 "\t" $4}' marks.txt

lors de l’exécution de ce code, vous obtenez le résultat suivant −

Sortie

Physics 80Maths 90Biology 87English 85History 89

Dans le fichier de marques.txt, la troisième colonne contient le nom du sujet et la quatrième colonne contient les marques obtenues dans un sujet particulier. Imprimons ces deux colonnes en utilisant la commande AWK print. Dans l’exemple ci-dessus, $3 et $4 représentent respectivement les troisième et quatrième champs de l’enregistrement d’entrée.

l’Impression de Toutes les Lignes

Par défaut, AWK imprime toutes les lignes qui correspondent au motif.,

Exemple

$ awk '/a/ {print $0}' marks.txt

lors de l’exécution de ce code, vous obtenez le résultat suivant −

Sortie

2) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89

Dans l’exemple ci-dessus, nous sommes à la recherche forme un. Quand un motif match réussit, il exécute une commande dans le bloc corps. En l’absence d’un bloc de corps, une action par défaut est effectuée qui consiste à imprimer l’enregistrement. Par conséquent, la commande suivante produit le même résultat −

exemple

$ awk '/a/' marks.txt

impression de colonnes par motif

Lorsqu’une correspondance de motif réussit, AWK imprime l’enregistrement entier par défaut., Mais vous pouvez demander à AWK d’imprimer uniquement certains champs. Par exemple, l’exemple suivant affiche le troisième et le quatrième champ lorsqu’une correspondance de motif réussit.

Exemple

$ awk '/a/ {print $3 "\t" $4}' marks.txt

lors de l’exécution de ce code, vous obtenez le résultat suivant −

Sortie

Maths 90Biology 87English 85History 89

l’Impression de Colonne dans n’Importe quel Ordre

Vous pouvez imprimer les colonnes dans un ordre quelconque. Par exemple, l’exemple suivant affiche la quatrième colonne suivie de la troisième colonne.,

exemple

$ awk '/a/ {print $4 "\t" $3}' marks.txt

en exécutant le code ci −dessus, vous obtenez le résultat suivant –

sortie

90 Maths87 Biology85 English89 History

comptage et impression du motif correspondant

voyons un exemple où vous pouvez compter et imprimer le nombre de lignes.

exemple

$ awk '/a/{++cnt} END {print "Count = ", cnt}' marks.txt

en exécutant ce code, vous obtenez le résultat suivant −

Output

Count = 4

dans cet exemple, nous incrémentons la valeur de counter lorsqu’une correspondance de motif réussit et nous imprimons cette valeur dans le bloc final., Notez que contrairement à d’autres langages de programmation, il n’est pas nécessaire de déclarer une variable avant de l’utiliser.

des Lignes d’Impression avec Plus de 18 Caractères

Laissez-nous imprimer uniquement les lignes qui contiennent plus de 18 caractères.

Exemple

$ awk 'length($0) > 18' marks.txt

lors de l’exécution de ce code, vous obtenez le résultat suivant −

Sortie

3) Shyam Biology 874) Kedar English 85

AWK fournit une longueur intégrée de la fonction qui retourne la longueur de la chaîne. La variable $0 stocke la ligne entière et en l’absence de bloc de corps, l’action par défaut est prise, c’est-à-dire l’action d’impression., Par conséquent, si une ligne a plus de 18 caractères, la comparaison est vraie et la ligne est imprimée.

Annonces

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *