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 :

commande perl de différence


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 27
    Points
    27
    Par défaut commande perl de différence
    Bonjour,

    Est ce qu'il existe ds perl ou Cshell une commande qui liste la difference entre deux fichiers...Il y a normalement 'diff' ou 'tkdiff'...mais j'ai besoin d'une commande qui liste les détails de la diif...yen a t il ?

  2. #2
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    diff liste les détails de la différence.

    --
    Jedaï

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 27
    Points
    27
    Par défaut
    elle ne liste rien, elle donne juste si c identik ou pas,par ex si deux fichiers sont diff ca donne 0 si c identik ca donne 1. mais elle ne liste pas les lignes ki sont diff...

  4. #4
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    Bien sûr que si !!! Là tu me parles du code de retour de diff, qui ne peut être qu'une valeur numérique de toute façon, mais sur sa sortie standard diff écrit un texte qui répertorie exactement les différences entre les deux fichiers, qu'on peut d'ailleurs utiliser pour patcher l'un vers l'autre...
    Si tu ne sais pas récupérer la sortie standard d'une commande, jette un coup d'oeil à notre FAQ, il faut utiliser ``.

    Si tu veux une solution Pure Perl, tu as Text:: Diff.

    --
    Jedaï

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 27
    Points
    27
    Par défaut
    ok ok...Même si j'ai pas tb saisi, mais svp soyez patient avec moi .
    normalement je fais :

    $test = `diff text1.txt text2.txt`;
    if(!$test)
    { print "error";
    }

    comment je dosi faire pr recuperer la diff, chez moi ça print just error.
    Merci.
    ( et si je pose une question stupide pardonnez moi, car là je ne vois pas comment faire )

  6. #6
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    print $test ?

    --
    Jedaï

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 27
    Points
    27
    Par défaut
    non, ça ne donne rien, qu'ils soient différents ou identiques, le print $test ne visualise rien..Merci qd même. et je vous assure , j'ai tout essayé..

  8. #8
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    Mais tu es sous quel système bon sang !!!
    Ce code marche parfaitement sous Linux (ou sous la plupart des Unix à ma connaissance, bien que la sortie puisse varier selon la version de diff) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/usr/bin/perl
    use strict; use warnings;
    die "You're not in the right directory !" unless -e "text.old" and -e "text.new";
    my $test = qx(diff text.old text.new);
    print $test;
     
    __END__
    A exécuter dans le répertoire où text.old et text.new sont.

    Si ce code ne marche pas, c'est que ton diff a un sérieux problème ou est une version assez ancienne.

    --
    Jedaï

Discussions similaires

  1. Utilisation d'une commande Perl
    Par Muller Guy dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 05/04/2009, 14h17
  2. Problème pour lancer une commande PERL
    Par mr_samy81 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 25/03/2009, 14h48
  3. Exécuter la commande "perl monfichier.pl"
    Par eyango dans le forum Web
    Réponses: 2
    Dernier message: 13/10/2008, 12h37
  4. Lancer une commande Perl dans un script Shell
    Par Ryo_san dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 02/06/2008, 11h01
  5. [Perl] code retour de la commande "perl"
    Par NikoBe dans le forum Shell et commandes GNU
    Réponses: 0
    Dernier message: 14/08/2007, 10h16

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