Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2676 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [resolu]différences entre deux fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[resolu]différences entre deux fichiers

n°1740101
OyT
dyslexics have more fnu
Posté le 02-06-2008 à 10:59:13  profilanswer
 

Bonjour voici mon problème:  
 
j'ai deux fichiers:
 

Code :
  1. fichier1:
  2. pomme
  3. poire
  4. banane


 

Code :
  1. fichier2:
  2. banane
  3. ananas
  4. pomme


 
J'ai besoin de récupérer dans un fichier résultat ou ce qu'il y a dans le fichier1 et pas dans le 2 ou ce qui n'est pas commun entre les 2 soit:
 

Code :
  1. fichier3:
  2. poire


 
ou
 

Code :
  1. fichier3:
  2. poire
  3. ananas


 
j'ai vu que la fonction diff va me donner certaines différences mais à moins qu'il y est une option que je n'ai pas compris ca ne correspond pas exactement à ce dont j'ai besoin. ou l'inverse de sort -u ???  
 
Plus précisemment j'essaie d'éviter le script vu chaque fichier fait plus de 50.000 lignes.
 
merci


Message édité par OyT le 02-06-2008 à 13:51:51

---------------
yop yop
mood
Publicité
Posté le 02-06-2008 à 10:59:13  profilanswer
 

n°1740147
olivthill
Posté le 02-06-2008 à 11:30:57  profilanswer
 

Ah, c'est donc de l'Unix.
 
Pour récupérer ce qui n'est pas commun entre deux fichiers, diff est la commande habituelle, mais il faudrait que les fichiers soient triés, donc un petit sort ordinaire est à faire avant.
 
Pour récupérer ce qui est commun, il doit y avoir des astuces, mais je n'en ai pas qui me viennent à l'esprit immédiatement, donc je ferais un petit script, et je ne crois pas qu'il prendrait beaucoup de temps d'exécution même pour 50 000 lignes, si les fichiers sont triés au départ.

n°1740152
OyT
dyslexics have more fnu
Posté le 02-06-2008 à 11:34:11  profilanswer
 

Oui ils sont deja triés, mais j'essaie d'optimiser le temps de traitement, vu que l'ensemble de mon script me prend deja 50 minutes sans cette fonctionnalité ^^.... mais merci  


---------------
yop yop
n°1740200
matafan
Posté le 02-06-2008 à 12:48:40  profilanswer
 

sort file1 file2 | uniq -u


En supposant que chaque ligne n'apparait pas plus d'une fois dans un fichier, sinon ça ne marche pas.

Message cité 1 fois
Message édité par matafan le 02-06-2008 à 12:49:42
n°1740229
OyT
dyslexics have more fnu
Posté le 02-06-2008 à 13:51:31  profilanswer
 

matafan a écrit :

sort file1 file2 | uniq -u


En supposant que chaque ligne n'apparait pas plus d'une fois dans un fichier, sinon ça ne marche pas.


 
ok merci du coup je fais
 

Code :
  1. sort file1 file2 | uniq -u >> file3


puis

Code :
  1. sort file1 file3 | uniq -d


 
super merci


---------------
yop yop

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [resolu]différences entre deux fichiers

 

Sujets relatifs
[resolu]différence entre deux listes perlTrie sur fichiers
[RESOLU] Traiter un tableau 2 par 2[Résolu] Fil d'Ariane PHP/MySQL sur système d'include
[Résolu] Newbie - requêtes SQL de sélection et bouclecommunication entre 2 fichiers .c pas dans le meme dossier grace a un
[C++ et C] Lister les interfaces réseau d'un PC [resolu][C#.NET][pas si resolu] Colorer un ou plusieurs mots dans une textbox
Requête sur opération select max 
Plus de sujets relatifs à : [resolu]différences entre deux fichiers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR