Perl pour physiciens



Documents pareils
Exonet : sauvegarde automatisée d une base de données

Perl Orienté Objet BioPerl There is more than one way to do it

1 Lecture de fichiers

Mon premier rpm. 7 juin Avant de commencer RPM URPMI RPMBUILD... 2

1.1 L EXPLORATEUR WINDOWS

EPREUVE PRATIQUE DES TECHNIQUES INFORMATIQUES ACTIVITE N 1. Thème de l activité : Configuration d un firewall

ScIn11 informatique Session d'appel, durée 1 heure, tous documents autorisés N'oubliez pas de reporter votre numéro d'anonymat :

Techniques de Programmation pour Internet

Programmation C. Apprendre à développer des programmes simples dans le langage C

Introduction à la présentation graphique avec xmgrace

Langage Perl. Introduction & Retour d'expérience. Journée du 30/11/ S. Gallina - GEPV - 1/42

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

td3a correction session7az

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

Request Tracker pour les Nuls. Yves Agostini - YVESAGO

Initiation à LabView : Les exemples d applications :

Licence Sciences et Technologies Examen janvier 2010

pyensae StockPrices September 1, Manipulation de séries financières avec la classe StockPrices

1 Démarrage de Marionnet

Présentation du langage et premières fonctions

Améliorations Sage Gestion Commerciale version 7.71 Sage Comptabilité version 7.72

Introduction au langage C

Configuration des notifications de messagerie avec les scripts pour les alertes IDS avec le CiscoWorks Monitoring Center for Security

(Langage de commandes) Les commandes sont données par l'utilisateur grâce au clavier, à partir d'une "invite" ou "prompt" (par exemple "c:\>" )

AWS avancé. Surveiller votre utilisation d EC2

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

1. Structure d'un programme FORTRAN 95

Module : Informatique Générale 1. Les commandes MS-DOS

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

des Données et Référentiels sur l'eau Service d'administration Nationale

1 Recherche en table par balayage

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Page Paragraphe Modification Mise en page du document Le bouton "Format de page" est maintenant "Page"

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Les chaînes de caractères

Programmation système I Les entrées/sorties

2 Formation utilisateur

MT940-MultiLine. Formats. Version 3.02 du 17/01/2013. Sommaire: Extraits de compte (Formats utilisés) 2

Inxmail Professional 4.2

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Annexe technique SEPA Alimenter la base Mandats Créancier et enrichir ses fichiers de prélèvements

Programme des Obligations d épargne du Canada. Guide d utilisation du serveur FTPS. Version 2.4

Introduction à MATLAB R

Thème : Gestion commerciale

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

LES DECIMALES DE π BERNARD EGGER

Secrétariat du Grand Conseil PL 9487-A

Tél. : (241) / Fax : (241) eqc@bgfi.com.

UE C avancé cours 1: introduction et révisions

Le service FTP. M.BOUABID, Page 1 sur 5

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var Tel : bij@agasc.fr Word: Les tableaux.

Algorithmique et Programmation, IMA

La Voix sur IP. Études des solutions logicielles. Open Source

FusionInventory. Guillaume Rousse Journées francophones de Perl 2011

Programmation système de commandes en C

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Séance 0 : Linux + Octave : le compromis idéal

1 Description générale de VISFIELD

Dossier I Découverte de Base d Open Office

Dans l'article précédent, vous avez appris

Optimisation, traitement d image et éclipse de Soleil

Auto-évaluation SQL. Document: f0453test.fm 19/04/2012. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

Architecture des Systèmes d Information Architecture des Systèmes d Information

Bon ben voilà c est fait!

Serveurs de noms Protocoles HTTP et FTP

Introduction au Système d Exploitation Unix/Linux

GlobalScape Secure FTP Server Buffer Overflow

Formulaire pour envoyer un mail

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Choisir le mode d envoi souhaité. Option 1 : Envoyer un SMS à un nombre réduit de numéros (0 10 )

SUPPORT DE COURS LOGICIEL SAGE SAARI COMPTABILITE 100

V- Manipulations de nombres en binaire

Chaque ordinateur est constitué de différentes unités de stockage de données (Disque dur, Graveur ) que l on peut imaginer comme de grandes armoires.

Attaques applicatives

RECOPLUS LOGICIEL DE GESTION DES RECOMMANDES NOTICE D UTILISATION DE RECOPLUS RESEAU. N de série

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal

R01 Import de données

Fiche n 1 : Téléverser une ressource dans la plateforme

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

BACCALAURÉAT PROFESSIONNEL ÉPREUVE DE MATHEMATIQUES. EXEMPLE DE SUJET n 2

SOFI Gestion+ Version 5.4. Echanges de données informatiques Spicers Sofi gestion+ Groupements. SOFI Informatique. Actualisé le

Solution Pro pour l Envoi de SMS direct opérateurs PUSH SMV MODE HTTP. Documentation Technique

Programmation en Java IUT GEII (MC-II1) 1

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

Guide de l utilisateur

Gestion distribuée (par sockets) de banque en Java

PRO-G-DIS. Installation et utilisation de la banque Claude Bernard

Logiciel PEB Version Liste des updates

Environnements informatiques


1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

Cours Excel : les bases (bases, texte)

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Livret du Stagiaire en Informatique

Numbers sur ipad. Atelier Formation Numbers sur ipad. [Notes extraitres de l'aide en ligne]

Import d un fichier de contacts dans une campagne

Cours d Analyse. Fonctions de plusieurs variables

Transcription:

Perl pour physiciens Nicolas Regnault Laboratoire Pierre Aigrain 23 novembre 2004 Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 1 / 24

Plan du cours : introduction les variables les tableaux les fichiers les expressions régulières les fonctions hygiène et programmation (les 10 commandements) PERL maître du monde Exemples à la demande Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 2 / 24

Plan du cours : introduction les variables les tableaux les fichiers les expressions régulières les fonctions hygiène et programmation (les 10 commandements) PERL maître du monde Exemples à la demande Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 2 / 24

Chapitre 5 : Les expressions régulières Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 3 / 24

Reconnaissance de formes Pourquoi dans ce cas s infliger les expressions régulières? composée d un certain nombre de caractères quatre chiffres extension.dat Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 4 / 24

Reconnaissance de formes Pourquoi dans ce cas s infliger les expressions régulières? composée d un certain nombre de caractères quatre chiffres extension.dat if ($chaine = /\d\d\d\d\.dat$/) Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 4 / 24

Reconnaissance de formes Pourquoi dans ce cas s infliger les expressions régulières? composée d un certain nombre de caractères quatre chiffres extension.dat if ($chaine = /\d\d\d\d\.dat$/) Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 4 / 24

Reconnaissance de formes Pourquoi dans ce cas s infliger les expressions régulières? composée d un certain nombre de caractères quatre chiffres extension.dat if ($chaine = /\d\d\d\d\.dat$/) Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 4 / 24

Reconnaissance de formes tous les caractères alphanumériques espace. n importe quel caractère (sauf \n) \d n importe quel chiffre \w n importe quel caractère alphanumérique \s n importe quel type d espace \. le caractère. \\ le caractère \ idem pour presque tous les caractères non alphanumériques Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 5 / 24

Reconnaissance de formes groupe explicite [abcde] groupe avec intervalle [a-e] groupe avec plusieurs intervalles [a-ea-e] complémentaire d un groupe [ˆa-eA-E] Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 6 / 24

Reconnaissance de formes ancrage de motif : /ˆ.../ ancrage en début de ligne. /...$/ ancrage en fin de ligne. Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 7 / 24

Reconnaissance de formes ancrage de motif : /ˆ.../ ancrage en début de ligne. /...$/ ancrage en fin de ligne. if ($chaine = /\\d\\d\\d\\d\.dat$/) Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 7 / 24

Reconnaissance de formes nombre d occurences : * zéro, une ou plusieurs apparitions + doit apparaître au moins une fois.? doit apparaître au plus une fois. {x} doit apparaître x fois. {x,y} doit apparaître au moins x fois et au plus y fois. Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 8 / 24

Reconnaissance de formes dynamique.pl #!/usr/bin/perl $chaine = qhe001.dat ; $expression = \d*\.dat\$ ; if ($chaine = /\b$expression\b/) { print ($chaine. verifie l expression reguliere.$expression. \n ) ; } Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 9 / 24

Reconnaissance de formes dynamique.pl #!/usr/bin/perl $chaine = qhe001.dat ; $expression = \d*\.dat\$ ; if ($chaine = /\b$expression\b/) { print ($chaine. verifie l expression reguliere.$expression. \n ) ; } Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 9 / 24

Reconnaissance de formes dynamique.pl #!/usr/bin/perl $chaine = qhe001.dat ; $expression = \d*\.dat\$ ; if ($chaine = /\b$expression\b/) { print ($chaine. verifie l expression reguliere.$expression. \n ) ; } Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 9 / 24

Reconnaissance de formes Ecrivez un programme qui recherche dans tous les fichiers ayant l extension txt (vous vous assurerez qu il s agit bien d un fichier), ceux qui contiennent une chaîne de caractères simple (uniquement des chiffres et des lettres sans espaces ni caractères spéciaux). Cette chaîne sera donnée par le premier argument du programme. Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 10 / 24

Substituer un motif substitution1.pl #!/usr/bin/perl $fichier = toto1984.dat ; $fichier = s/toto/tata/ ; print ($fichier. \n ) ; Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 11 / 24

Substituer un motif substitution1.pl #!/usr/bin/perl $fichier = toto1984.dat ; $fichier = s/toto/tata/ ; print ($fichier. \n ) ; Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 11 / 24

Substituer un motif substitution1.pl #!/usr/bin/perl $fichier = toto1984toto.dat ; $fichier = s/toto/tata/ ; print ($fichier. \n ) ; Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 11 / 24

Substituer un motif Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 12 / 24

Substituer un motif substitution1.pl #!/usr/bin/perl $fichier = toto1984toto.dat ; $fichier = s/toto/tata/ ; print ($fichier. \n ) ; Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 13 / 24

Substituer un motif substitution1.pl #!/usr/bin/perl $fichier = toto1984toto.dat ; $fichier = s/toto/tata/g ; print ($fichier. \n ) ; Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 13 / 24

Substituer un motif substitution2.pl #!/usr/bin/perl $fichier = toto1984.dat ; $fichier = s/toto// ; $fichier = s/\.dat// ; $fichier += 100 ; $fichier = toto.$fichier..dat ; print ($fichier. \n ) ; Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 14 / 24

Substituer un motif substitution2.pl #!/usr/bin/perl $fichier = toto1984.dat ; $fichier = s/toto// ; $fichier = s/\.dat// ; $fichier += 100 ; $fichier = toto.$fichier..dat ; print ($fichier. \n ) ; Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 14 / 24

Substituer un motif substitution2.pl #!/usr/bin/perl $fichier = toto1984.dat ; $fichier = s/toto// ; $fichier = s/\.dat// ; $fichier += 100 ; $fichier = toto.$fichier..dat ; print ($fichier. \n ) ; Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 14 / 24

Substituer un motif substitution2.pl #!/usr/bin/perl $fichier = toto1984.dat ; $fichier = s/toto(\d*)\.dat/$1/ ; $fichier += 100 ; $fichier = toto.$fichier..dat ; print ($fichier. \n ) ; Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 15 / 24

Substituer un motif substitution2.pl #!/usr/bin/perl $fichier = toto1984.dat ; $fichier = s/toto(\d*)\.dat/$1/ ; $fichier += 100 ; $fichier = toto.$fichier..dat ; print ($fichier. \n ) ; Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 15 / 24

Substituer un motif #!/usr/bin/perl $nomfichier = $ARGV[0] ; $contenu = ; unless (open (INFILE, $nomfichier)) { die ( impossible d ouvrir.$nomfichier. en lecture\n ) ; } while ($ligne = <INFILE>) { $ligne = s/ /\ /g ; $contenu.= $ligne ; } Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 16 / 24

Substituer un motif #!/usr/bin/perl $nomfichier = $ARGV[0] ; $contenu = ; unless (open (INFILE, $nomfichier)) { die ( impossible d ouvrir.$nomfichier. en lecture\n ) ; } while ($ligne = <INFILE>) { $ligne = s/ /\ /g ; $contenu.= $ligne ; } Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 16 / 24

Substituer un motif #!/usr/bin/perl $nomfichier = $ARGV[0] ; $contenu = ; unless (open (INFILE, $nomfichier)) { die ( impossible d ouvrir.$nomfichier. en lecture\n ) ; } while ($ligne = <INFILE>) { $ligne = s/ /\ /g ; $contenu.= $ligne ; } Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 16 / 24

Substituer un motif #!/usr/bin/perl $nomfichier = $ARGV[0] ; $contenu = ; unless (open (INFILE, $nomfichier)) { die ( impossible d ouvrir.$nomfichier. en lecture\n ) ; } while ($ligne = <INFILE>) { $ligne = s/ /\ /g ; $contenu.= $ligne ; } Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 16 / 24

Substituer un motif #!/usr/bin/perl $nomfichier = $ARGV[0] ; $contenu = ; unless (open (INFILE, $nomfichier)) { die ( impossible d ouvrir.$nomfichier. en lecture\n ) ; } while ($ligne = <INFILE>) { $ligne = s/ /\ /g ; $contenu.= $ligne ; } Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 16 / 24

Substituer un motif close (INFILE) ; unless (open (OUTFILE, >.$nomfichier)) { die ( impossible d ouvrir.$nomfichier. en ecriture\n ) ; } print OUTFILE $contenu ; close (OUTFILE) ; Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 17 / 24

Substituer un motif Ecrivez un premier programme qui crée un certain nombre de fichiers donné par le premier argument du programme, et ayant pour nom qhexxx.dat (xxx allant de 0 au nombre donné moins un). Chaque fichier contiendra son propre nom. Ecrivez un second programme qui recherche dans un répertoire tous les fichiers de la forme qhe\d*\.dat et qui les renomme en fqhe\d*\.dat. Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 18 / 24

Substituer un motif monde DOS/Windows :deux caractères ASCII pour le saut de ligne (\r et \n) monde UNIX : un caractère ASCII pour le saut de ligne (\n) Ecrivez un programme dos2unix.pl qui convertit un fichier dont le nom est donné par le premier argument de la commande, du standard DOS/Windows au format UNIX. Ecrivez un programme unix2dos.pl qui fait l opération inverse. Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 19 / 24

Le duo comique split et join @tableau=split(/ /, $ligne) ; premier argument = expression régulière qui permet de reconnaître le séparateur euxième argument = ligne à découper Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 20 / 24

Le duo comique split et join $ligne=join(, @tableau) ; Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 21 / 24

Le duo comique split et join #!/usr/bin/perl $nomfichier = $ARGV[0] ; unless (open (INFILE, $nomfichier)) { die ( impossible d ouvrir.$nomfichier. en lecture\n ) ; } $ligne = <INFILE> ; chomp ($ligne) ; @valeurx = split (/ /, $ligne) ; $ligne = <INFILE> ; chomp ($ligne) ; @valeury = split (/ /, $ligne) ; Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 22 / 24

Le duo comique split et join #!/usr/bin/perl $nomfichier = $ARGV[0] ; unless (open (INFILE, $nomfichier)) { die ( impossible d ouvrir.$nomfichier. en lecture\n ) ; } $ligne = <INFILE> ; chomp ($ligne) ; @valeurx = split (/ /, $ligne) ; $ligne = <INFILE> ; chomp ($ligne) ; @valeury = split (/ /, $ligne) ; Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 22 / 24

Le duo comique split et join #!/usr/bin/perl $nomfichier = $ARGV[0] ; unless (open (INFILE, $nomfichier)) { die ( impossible d ouvrir.$nomfichier. en lecture\n ) ; } $ligne = <INFILE> ; chomp ($ligne) ; @valeurx = split (/ /, $ligne) ; $ligne = <INFILE> ; chomp ($ligne) ; @valeury = split (/ /, $ligne) ; Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 22 / 24

Le duo comique split et join close (INFILE) ; unless (open (OUTFILE, >.$nomfichier)) { die ( impossible d ouvrir.$nomfichier. en ecriture\n ) ; } $iter = 0 ; foreach $ligne (@valeurx) { print OUTFILE ($ligne..$valeury[$iter]. \n ) ; $iter++ ; } close (OUTFILE) ; Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 23 / 24

Le duo comique split et join Ecrivez un premier programme qui crée un fichier un fichier de nombres aléatoires organisés en x colonnes et y lignes (x et y seront passés en paramètres au programme). Ecrivez un deuxième programme qui cherche le maximum de la première colonne, puis divise tous les nombres par ce maximum et finalement remplace l ancien contenu du fichier par les données renormalisées. Nicolas Regnault (Laboratoire Pierre Aigrain) Perl pour physiciens 23 novembre 2004 24 / 24