IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Ligne de Commande en PERL


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 35
    Par défaut Ligne de Commande en PERL
    Bonjour à Tous,

    après avoir parcourus un grand nombre de sujets sur ce forum (et d'autres) je n'arrive pas à trouver toutes les commandes à mettre dans un .pl

    Mon cas est le suivant:

    Je dispose d'un répertoire avec de nombreux fichiers textes ayant tous un contenu quasi similaire. J'aimerai que mon .pl exécute les documents un à un et qu'il extrait:

    - Un contenu texte compris entre <MOT1> et plusieurs lignes plus loin <MOT2>
    - Qu'il récupère la ligne 23 (par exemple)
    - Qu'il rajoute une ligne de <blabla "NOMDUFICHIER"> au début puis une autre <bloblo> à la fin

    Puis S'ENREGISTRE SOUS en reprenant son nom d'origine dans un répertoire N+1 (nommé résultat, par exemple)

    Voila pour mon cas... ouf.... j'espère avoir été le plus clair possible, en ce qui concerne les fichiers, ce n'est que du texte. Pour le moment je procède manuellement avec quelques .bat que me mâche un tout petit peu le travail. Ayant peu de connaissance en PERL, je me doute que cela ne représente qu'une poignet de lignes malheureusement dans un langage que je maitrise pas (encore) :/
    Un grand merci par avance à tout ceux qui m'aiguilleront !!!
    Et si besoin de compléments d'info, n’hésitez pas !!

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Tu veux faire tout cela dans un script uniligne lancé à la ligne de commande? C'est possible, mais je pense qu'il vaut mieux un vrai petit script (très simple, a priori).

    Deuxième question: tu es sous quel environnement? Cela a de l'importance dès qu'il est question de ligne de commande.

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 35
    Par défaut
    Bonjour LoLo,
    avant tout je te remercie pour ta rapide réponse
    Actuellement je suis sous windows7 mais ce petit script est susceptible d’être utilisé sur du Windows XP ( je ne pense pas que ce soit problématique..)
    Concrètement l’intérêt de celui ci, est de remplacer mes petits .bat utiles certes mais fastidieux :/
    C'est suite à une recommandation que je me suis orienté vers le PERL pour automatiser ce petit script
    mais mes connaissances sont pour dire.. minimales..

    Disons que j'ai mon répertoire remplit de fichiers texte où je souhaiterais coller mon petit script dedans ouvrant document par document et qu'il:

    1. extrait le texte contenu entre <MOT1> plusieurs lignes plus bas <MOT2>
    2. extrait uniquement la ligne commençant par <resumer>
    3. Ajout à la première ligne <MOT "NOMDUFICHIER"> puis en fin ajoute un <end>

    Donc fichier par fichier il s'enregistre avec le même nom dans un répertoire N+1 crée au préalable
    ou (j'ose rêver que le script me le crée automatiquement en le nommant par défaut "résultats"

    J'ai tenté au travers de différents morceaux de code s’apparentant à mon besoin mais en vain..
    http://www.developpez.net/forums/d75...-entre-lignes/

    Je te remercie de nouveau et par avance pour tout tes conseils

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Je n'ai pas très bien compris ce qu'il faut faire avec l'extraction du résumé dans l'action 2.

    Sinon, les actions 1 et 3 peuvent être assez facilement traitées avec l'opérateur "..".
    S'il s'était agit de simplement remplacer les fichiers "in place" l'option -pi de perl permettrait de le faire assez facilement, mais s'il faut en sus déplacer le fichier résultat ailleurs, il me semble prudent, comme le dit lolo, de passer par un petit script.

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 35
    Par défaut
    Par rapport à mon exemple
    2. extrait uniquement la ligne commençant par <RESUMER>
    dans le corps de chaque document à traiter il y a une ligne commençant par<RESUMER> que je souhaite voir apparaitre dans le résultat.

    Exemple (raccourci) de document à traiter:
    <bla>
    <bla>
    <bla>
    <MOT1>
    <bli>
    <bli>
    <MOT2>

    <bla>
    <bla>
    <RESUMER>
    <bla>
    <bla>

    Ce qui représente le Saint Graal pour moi :

    <TEXTEBLABLA="NOMDUFICHIER">
    <MOT1>
    <bla>
    <bla>
    <MOT2>
    <RESUMER>
    <END>

    Et pour finir, il s'enregistre dans un dossier N+1 avec le même nom.
    Le script s'occupe de faire la manipulation pour tout les fichiers du répertoire où il est installé.

    Je me doute que cela ne correspond à quelques lignes de codes mais le language m'est encore peu connu..

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 35
    Par défaut A Philou67430
    Bonjour Philou67430 et merci pour ton retour ..
    Je suis d'accord pour le script et c'est suite à un conseil fait que je me suis orienté vers le PERL mais le langage est un peu nouveau pour moi..
    Dans le cas où tu es d'autres conseils (autres langages, ...) je suis preneur.
    Actuellement je fonctionne avec des .bat qui me pré-mâche un peu ces taches répétitives :/ Donc Tout conseil est le bienvenu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 11/07/2014, 09h21
  2. Réponses: 6
    Dernier message: 22/02/2010, 12h40
  3. Programmer des lignes de commandes en perl
    Par mémèreSoso dans le forum Linux
    Réponses: 2
    Dernier message: 12/06/2009, 16h15
  4. Mysql + Perl + Ligne de command
    Par samus535 dans le forum SGBD
    Réponses: 6
    Dernier message: 05/04/2006, 20h13
  5. Analyser la ligne de commande
    Par benj29 dans le forum C
    Réponses: 14
    Dernier message: 19/11/2002, 04h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo