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 ?
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 ?
diff liste les détails de la différence.
--
Jedaï
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...
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ï
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 )
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é..
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) :
A exécuter dans le répertoire où text.old et text.new sont.
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__
Si ce code ne marche pas, c'est que ton diff a un sérieux problème ou est une version assez ancienne.
--
Jedaï
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager