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.