Forum Clubic

Avoir seulement les lignes modifiées entre 2 fichiers

Salut à tous !

J’ai besoin de récupérer la différence entre 2 fichiers. J’ai regardé pour la commande diff mais elle ne me retourne pas exactement ce que je voudrais car elle effectue une comparaison ligne par ligne. Et dans mes fichiers, je peux avoir exactement la même ligne mais pas placé au même endroit (dans le fichier 5. S’il y a une option pour ça je ne l’ai pas vu. Est ce que vous auriez une petite idée de comment faire ? Est-ce qu’avec awk il serait possible de la faire mais sans que se soit trop long du style moins de 10 secondes (je suis pas à 2sec près mais les clients oui :wink: ) car mes fichiers peuvent avoir plus de 200000 lignes.

Merci

Systeme d’Exploitation ?

Sous Windows, j’utilise WinMerge.
Edité le 26/07/2007 à 13:03

:icon_biggrin: j’ai oublié de préciser soit Red Hat soit Dedian. Il faudrait que ça marche sous les 2 mais je ne pense pas que ca posse de problème.

Si l’ordre des lignes n’est pas le même, même winmerge aura du mal.
Le mieux dans ce cas c’est de lancer la comparaison sur des copies triées

Et si je fais un script shell est-ce que le temps d’exécution serait long ?

J’ai aussi le choix de le faire en php mais si j’ai deux tableaux de plus de 200000 données c’est super long. Car le but est justement de diminuer son temps de traitement car il met parfois plus de 20mn.

Ben fais-le en C alors, si tu l’as déjà fait en PHP, c’est que tu saurais le reprogrammer?

Je ne peux pas le faire en C, j’ai peux utilisé uniquement le php et les commandes linux (ou script).

Je vais donc essayer de faire un script, je verai bien le temps de traitement. Je vous tiens au courant :wink: