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

Programmation et administration système Perl Discussion :

commande linux dans perl


Sujet :

Programmation et administration système Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 161
    Par défaut commande linux dans perl
    Bonjour,

    ma question est simple .

    Comment représenter cette commande dans une variable perl.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    awk 'BEGIN {FS=";"} {print $1 FS $3 FS $4}' < fichier-orig.csv > fichier-dest.csv
    merci.

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Tu peux exécuter cette commande par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system( q/awk 'BEGIN {FS=";"} {print $1 FS $3 FS $4}' < fichier-orig.csv > fichier-dest.csv/ );
    D'un autre côté, tu peux faire la même chose en Perl, en one-liner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl -F; -ane 'print +(join ";", @F[0,2,3])' fichier-orig.csv > fichier-dest.csv
    ou simplement dans un script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while(<>) {
      my @fields = split /;/;
      print +(join ";", @fields[0,2,3]);
    }
    --
    Jedaï

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 161
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system( q/awk 'BEGIN {FS=";"} {print $1 FS $3 FS $4}' < fichier-orig.csv > fichier-dest.csv/ );
    c'est cette solution qui m'interesse mais perl prend $1 $3 $4 comme variable ainsi le ";" comme fin de ligne.

    alors je sais pas comment faire

    merci

  4. #4
    Membre expérimenté Avatar de CKLN00
    Homme Profil pro
    Bioinformaticien Java/Perl
    Inscrit en
    Avril 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Bioinformaticien Java/Perl
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 210
    Par défaut
    c'est justement pour ça qu'il as répondu
    system( q/awk 'BEGIN {FS=";"} {print $1 FS $3 FS $4}' < fichier-orig.csv > fichier-dest.csv/ );
    tout ce qui est entre q/ et / n'est pas interpréter par perl

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 161
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system( q/awk 'BEGIN {FS=";"} {print $1 FS $3 FS $4}' < fichier-orig.csv > fichier-dest.csv/ );
    merci, mais peut etre je suis pas allé au bout de ma question,

    j'aimerais bien savoir comment l'écrire cette fois avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system( q/awk 'BEGIN {FS=";"} {print $1 FS $3 FS $4}' < $file > $file/ );
    avec $file doit etre interprété .

    merci

  6. #6
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Un peu d'imagination que diable !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system( q/awk 'BEGIN {FS=";"} {print $1 FS $3 FS $4}'/ . " < $file > $file" );
    --
    Jedaï

  7. #7
    Membre expérimenté
    Avatar de VforVincent
    Homme Profil pro
    Doctorant (EPUB 3.0)
    Inscrit en
    Avril 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Doctorant (EPUB 3.0)
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 115
    Par défaut Batch dans Perl, ou Perl dans Batch ?
    Bonjour, j'ai une petite question (sinon je créerais pas de sujet).

    Je vais essayer d'être précis, pour éviter les remous habituels. J'avais un projet à faire. Le résultat est là, tout est fini, mais maintenant j'aimerais "unifier" tout ce que je fais. Et pour ça je cherche un langage si possible que je connais, et obligatoirement gratuit (je préfère préciser).

    Dans ce projet, j'ai tout d'abord un peu de batch de-ci de-là (pour parcourir des répertoires et établir des listes de noms de fichiers en XML ; pour créer des dossier).
    J'ai ensuite 2-3 transformation XSLT, pour obtenir des fichiers XHTML, à partir des fichiers sources, dont je récupère les noms dans mes ch'tites listes. Je déplace d'autres fichiers (notamment des .jpg).

    Et je finis par du post-traitement en Perl (je nettoie un peu mes fichiers).

    J'aurai aimé avoir l'ensemble des traitements appelés soit dans un Batch (oui je sais, ce n'est pas le bon forum), soit en Perl (ah ! c'est le bon forum !).

    La question est donc simple : Pensez-vous que je puisse réunir tout ce beau monde dans un programme Perl ? J'ai vu quelques sujets approchant de la réponse :

    Ici, et .

    Merci de m'aider dans cette réflexion !!

    Note : pour l'instant, j'ai un batch qui appellent tout, mais je ne maîtrise pas ce langage, et j'aimerais faire beaucoup plus... et le beaucoup plus, je l'imagine très bien en Perl !

  8. #8
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Tu peux bien évidemment regrouper le tout dans un programme perl qui fera les appels systèmes nécessaires.

  9. #9
    Membre expérimenté
    Avatar de VforVincent
    Homme Profil pro
    Doctorant (EPUB 3.0)
    Inscrit en
    Avril 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Doctorant (EPUB 3.0)
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 115
    Par défaut
    Cette affirmation me suffit pour me lancer dedans ! Merci pour ton retour Djibril.

    Et pardon d'avoir apparemment créé un sujet dans ce sujet (en même temps il y avait un lien ; on dira que c'était une question subsidiaire).

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

Discussions similaires

  1. Utiliser des commandes linux dans un shell
    Par Info_76 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 20/03/2008, 12h03
  2. lancer une commande linux dans un script perl
    Par hammag dans le forum Langage
    Réponses: 1
    Dernier message: 21/11/2007, 16h18
  3. [Système] Commande Linux dans Programme PHP
    Par makohsarah dans le forum Langage
    Réponses: 3
    Dernier message: 10/09/2007, 12h36
  4. Peut-on utiliser des commandes linux avec PERL
    Par undercrash dans le forum Linux
    Réponses: 2
    Dernier message: 01/03/2007, 14h12
  5. Réponses: 2
    Dernier message: 24/06/2003, 20h31

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