Système awk

Pages: 6 (1325 mots) Publié le: 12 juin 2012
TP Systèmes d'exploitation : langage awk
(d'après le tutoriel de nyal sur http://www.developpez.com/tutoriel)

1

Présentation

Awk est un langage de programmation datant de 1977, date de son apparition dans le monde Unix. Il tire son nom des trois programmeurs qui l'ont développé : Alfred V. Aho, Peter J. Weinberger et Brian W. Kernighan. Il en existe différentes versions AWK(versionoriginale provenant de AT&T, NAWK version améliorée de la première par AT&T, et GAWK une version développée par la fondation pour le logiciel libre). Cet utilitaire a été créé dans le but de remplacer les commandes grep et sed. Il est toujours utilisé du fait de sa ressemblance avec le langage C, de sa souplesse et de sa présence sur la majorité des systèmes d'exploitation Unix. Il est encore utiliséen administration système et dans les scripts Shell en tant que commande.

2 2.1

Un programme awk Fonctionnement

Awk fonctionne en lisant des données. Ces données peuvent être ainsi traitées par l'utilisateur, et provenir soit de fichiers, soit du canal de l'entrée standard (via un pipe par exemple). Exécution d'un programme awk : 2 manières de faire : ◦ soit en rendant le fichierexécutable en insérant en haut du fichier la ligne #! /usr/bin/awk -f ◦ soit en l'exécutant à l'aide de la commande awk sous un Shell avec l'option -f awk -f fichier_awk < fichier_texte Attention un programme awk ne fonctionnera que si il a des données à lire.

2.2

Structure du programme

Un programme awk se divise en 3 parties : 1. Coeur du programme Ce coeur est composé de conditions et d'actionsqui vont être exécutées pour chaque enregistrement (ligne du fichier à traiter) si la condition est remplie :
Condition { action } …. Condition { action } Condition \ { action }

L'accolade ouvrante doit être sur la même ligne, ou il faut mettre le caractère ('\') :

Il est possible de ne pas avoir de condition, alors l'action entre accolades sera automatiquement exécutée. On peut exécuter 2actions dépendantes d'une condition, soit en en mettant une par ligne, soit en les enchaînant sur une même ligne et en les séparant par un point virgule. Comment awk va exécuter ce programme ? Awk rappelle le coeur du programme qui est composé

de critères/actions pour chaque enregistrement. Un enregistrement est représenté le plus souvent par une ligne. Par conséquent, si vous avez un fichierde 4 lignes que vous allez traiter, le coeur du programme va être appelé quatre fois. Et pour chaque passage, c'est un nouvel enregistrement qui va être traité. 2. Le début : BEGIN Au démarrage d'un programme, awk peut exécuter des instructions avant le coeur du programme. Ces instructions doivent être placées dans un bloc qui se nomme BEGIN
BEGIN \ { instructions }

L'accolade après le BEGINest soumise à la même loi que celle après la condition dans le corps du programme, après le BEGIN ou il faut mettre un '\' juste après le BEGIN. On peut avoir plusieurs blocs BEGIN dans un même fichier. 3. La fin : END Contrairement aux blocs BEGIN, les blocs END sont exécutés à la fin du programme. Une fois que tous les enregistrements ont été traités par le coeur du programme. Il possède lesmêmes propriétés que le bloc BEGIN :
END { print "fin du programme"; } END \ { print "C'est vraiment fini" print ".." }

Exercice 1 : Ecrivez un programme awk qui permet d'afficher le nom du fichier au démarrage, 2 fois le coeur du programme et un message de fin. Exécutez-le, en utilisant les 2 possibilités d'exécution.

3 3.1
• •

Les variables Les types
variables utilisateur : variablessimples et tableaux associatifs variables système

Awk est un langage non typé, mais propose 2 types de variables :

3.2

Variables simples

Une variable est composée de lettres, chiffres et soulignés. La taille du nom n'est pas limitée mais le premier caractère se doit d'être différent d'un chiffre. Contrairement à un langage comme le C, une place mémoire est réservée sans avoir à les...
Lire le document complet

Veuillez vous inscrire pour avoir accès au document.

Vous pouvez également trouver ces documents utiles

  • awk bien determinier
  • Systemes
  • system
  • Système
  • systeme
  • Le system
  • Systeme
  • Systeme

Devenez membre d'Etudier

Inscrivez-vous
c'est gratuit !