cours-awk
4 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
4 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

L’outil awkDEA Chimie Informatique Th´eorique24 mars 2004Le programme awk permet d’effectuer des transformations sur un fichierenraisonnantsurles champs deslignes.Les champs sontlespartiesdeligness´epar´ees par des espaces. Il est souvent utilis´e en conjonction avec sed : sedcr´ee les champs en rempla¸cant les s´eparateurs d’un fichier en entr´ee par desespaces, et awk agit en fonction de ces champs.1 Syntaxe et actions1.1 Appel du programmeLa syntaxe g´en´erique de l’utilisation de awk est :awk programme fichierSi le fichier n’est pas pr´esent, awk agit sur les lignes de son entr´ee standard.Comme pour sed, il est possible de sauvegarder un programme dans unfichier fic prog, et de l’utiliser avec la commande :awk -f fic prog fichier1.2 Format d’un programme1Un programme pour awk est une suite de commandes sch´ema -action :sch´ema { action }Ilestaussipossibleded´efinirdesfonctions,maiscelan’estpasn´ecessairepour de petits programmes tels que nous en verrons dans la suite du courset les TDs.1patternI´ ´ ´Universite Henri Poincare – annee 2003-2004 II1.3 Sch´emas possibles1.3.1 GrammaireUnecommande sch´ema-actionde awkpeut ne pasavoir de sch´ema. Danscecas,elleestappliqu´eesurtoutesleslignes.Lessch´emassontd´efinissuivantla grammaire suivante :sch´ema ::= BEGINEND/expression r´eguli`ere/expression arithm´etiquesch´ema ||sch´emasch´ema &&sch´emasch´ema ?sch´ema :sch´ema(sch´ema)sch´ema,sch´ema1.3.2 S´emantiqueLors de l’analyse, une commande ...

Sujets

Informations

Publié par
Nombre de lectures 27
Langue Français

Extrait

L’outilawk DEAChimieInformatiqueTh´eorique 24 mars 2004
Le programmeawkpermet d’effectuer des transformations sur un fichier en raisonnant sur leschampsdes lignes. Leschampssont les parties de lignes se´par´eespardesespaces.Ilestsouventutilis´eenconjonctionavecsed:sed cr´eeleschampsenrempla¸cantless´eparateursdunchierenentr´eepardes espaces, etawkagit en fonction de ces champs.
1 Syntaxeet actions 1.1 Appeldu programme Lasyntaxege´ne´riquedelutilisationdeawkest : awkprogramme fichier Silechiernestpaspr´esent,awkagandarede.stntr´soneseedilnglrsetius Comme poursed, il est possible de sauvegarder un programme dans un fichierfic prog, et de l’utiliser avec la commande : awk-ffic prog fichier
1.2 Formatd’un programme 1 Un programme pourawkest une suite de commandesaemh´sc-action : sche´ma{action} Ilestaussipossibledede´nirdesfonctions,maiscelanestpasn´ecessaire pour de petits programmes tels que nous en verrons dans la suite du cours et les TDs. 1 pattern
I
Universit´eHenriPoincar´eanne´e2003-2004
II
1.3Sche´maspossibles 1.3.1 Grammaire Une commandeame´hcs-action deawk.Dmasanesrd´echtneupoiavasep cecas,elleestappliqu´eesurtoutesleslignes.Lessche´massontde´nissuivant la grammaire suivante : sch´ema::=BEGIN END /erpexsserrnoiuge´e`il/ expressionarithm´etique sch´ema||sch´ema sch´ema&&e´hcsam sche´ma?emh´sca:aemh´sc (´hmecsa) sch´ema,h´emsca
1.3.2S´emantique Lors de l’analyse, une commandetiaca-emh´scnoe-i,etseulsee´tuce´xetse mentsi,lesche´maestvrai.Nousreprenonslagrammairepourexpliquer quandunsch´emaestvrai. BEGINcsec:tseame´hd´auaivrprduutebgoarmm,evanaqteules lignescommencent`aeˆtrelues.Lactioncorrespondanteestenge´n´eral utilise´epourinitialiserdesvariables; ENDs:mye´hcamntmees,ltr´eueiqENDtseiarvrelechieapr`esqu enentre´esoittermine´; – /gu´enriore`elisserpxeesilqu´enecoaligitnolcappilseat/:eitnnutne suitedecaract`erescorrespondanta`lexpressionr´eguli`ere; ´leenneexpressionboo:lcaitnoeeennpxesserbnoi´looteesecx´´eutiles est vraie au moment de l’analyse de la ligne; am´echs||´hcsameesdeuxscesilund´xcetue´itnoseetcal:tme´hsesa vrai ; s´echma&&h´scaemuxscesdeesilut´e´xceseetitnolca:tnossame´h vrais ; ma´echs?ma´echs:chsma´e: (if..then..else..remiersch´emaests)peli vrai,lactionestex´ecut´eesilesecondlestaussi.Sinon,lactionest exe´cut´eesiletroisie`mesch´emaestvrai; – (chsma´e;iarvtseamnoseet´x:)lcaitilesch´eecut´ees e´hcsma,ma´echsnelio`uugnecta:l´teee´uctsxeoienmentdumortir`apa v´erielepremiersche´ma,etjusqua`cequontrouveunelignev´eriant
Universit´eHenriPoincare´anne´e2003-2004
lesecondsch´ema. 1.4 Actions
Lesstructuresdecontrˆoleetlesvariablespre´d´eniesquenous allonsutiliseronte´t´edonn´eesencours.
III
Le langage de programmation deawkestextrˆememeoctnelpmte,tli estvivementconseill´edallerregardersurlapagedemanueltoutesles possibilit´es(lancementdunautreprocessus,pipe, utilisation d’expressions re´gulie`res,...).Ilyaaussiunlivrecompletconsacre´`alutilisationenconjonc-tion deawketsed. Si une commande-acaitnoscemh´giridertee´npasadaction,lalignees ` verslasortied`esquelesche´maestvraie.Aladi´erencedesed, si aucune commandecaitme-acs´honne s’applique sur une ligne, la ligne n’est pas re-dirig´eeverslasortiestandard.Nousneverronsquelesdeuxcommandes printetprintf, sur des exemples.
2 Exemplesd’utilisation ´ 1. Ecrireles lignes contenant le motifun. awk ’/un/{print}’ fichier ´ 2.Ecrireleslignesdeplusde7caracte`res. awk ’length>7{print}’ fichier ´ 3. Ecrireles deux premiers champs en sens inverse. awk ’ NF>=2 print $2,$1’ fichier note : pour la fonctionprintealgiintae´occnondenatideux,lesacspe chaˆınesdecaracte`res,etlavirgulelase´parationparunespace... 4....en´ecrivantlerestedelaligne. awk ’ NF>; for(i=3;i¡=NF ;i++)=2 printf(”%s %s”, $2,$1) printf(”%s” ,$i);’ fichier Leprobl`emeiciestquelafonctionprint`alalignpasse-iaetumota quement,dou`lutilisationdeprintfxconmieuetdepermiuq,elrrtoˆ la sortie. 5. Impressiondes lignes entre unceciet unque(comprises).
Universite´HenriPoincar´eanne´e2003-2004
IV
awk ’/ceci/,/que/{print}fic 6.Impressiondetoutesleslignesdontlepremierchampsestdie´rentdu premierchampsdelalignepre´c´edente. awk ’BEGIN{avant =””} {if ($1==avant) print; avant = $1}’ fic note:lexpressionre´gulie`re/ˆavant/nestpaspossible,caravantest une variable deawk. 7.Nume´roterleslignesdunchier. awk ’{print NR,$0}’ fic
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents