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:mouarf: ?
Version imprimable
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:mouarf: ?
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 :lol: .
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 :oops: )
print $test ?
--
Jedaï
non, ça ne donne rien, qu'ils soient différents ou identiques, le print $test ne visualise rien..Merci qd même.:bug: et je vous assure , j'ai tout essayé..
Mais tu es sous quel système bon sang !!! :aie:
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:
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ï