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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [UNIX] - comparaison fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[UNIX] - comparaison fichiers

n°772158
nbabs
Posté le 16-01-2006 à 09:40:36  profilanswer
 

Bonjour,
 
 
J'aurais besoin d'un petit peu d'aide sur des commandes UNIX (certainement de base pour certains).
 
Possédant 2 fichiers, avec des noms, je souhaite connaitre ceux présents dans le premier fichier et non présent dans le second. Quelqu'un a-t-il une idée de la commande à utiliser?
 
Par avance, je vous en remercie.
 
Nbabs

mood
Publicité
Posté le 16-01-2006 à 09:40:36  profilanswer
 

n°772159
dkape
Posté le 16-01-2006 à 10:11:42  profilanswer
 

Salut,
 
Tu peux utiliser la commande diff.
 
ex :
 

Code :
  1. bash-2.05# more test1
  2. salut
  3. bash-2.05# more test2
  4. salut
  5. bonjour
  6. bash-2.05# diff test1 test2
  7. 1a2
  8. > bonjour


n°772327
nbabs
Posté le 16-01-2006 à 19:23:45  profilanswer
 

dkape a écrit :

Salut,
 
Tu peux utiliser la commande diff.
 
ex :
 

Code :
  1. bash-2.05# more test1
  2. salut
  3. bash-2.05# more test2
  4. salut
  5. bonjour
  6. bash-2.05# diff test1 test2
  7. 1a2
  8. > bonjour



 
Sauf que la commande diff effectue une comparaison ligne à ligne... une fois qu'un décalage est fait, après c'est mort :(

n°772359
jlighty
Posté le 16-01-2006 à 20:07:07  profilanswer
 

ALors il ne te reste plus qu'à faire un script fonctionnant de cette manière :
1- on analyse ligne par ligne le 1er fichier
2- on fait un grep '^$lachainedecaractère$'
3- si le retour est nul -> alors cette ligne n'est pas dans le 2ème fichier
4- après avoir analyser le 1er fichier, on fait la même chose mais cette fois-ci avec le 2ème fichier.

n°772392
nbabs
Posté le 16-01-2006 à 20:53:01  profilanswer
 

jlighty a écrit :

ALors il ne te reste plus qu'à faire un script fonctionnant de cette manière :
1- on analyse ligne par ligne le 1er fichier
2- on fait un grep '^$lachainedecaractère$'
3- si le retour est nul -> alors cette ligne n'est pas dans le 2ème fichier
4- après avoir analyser le 1er fichier, on fait la même chose mais cette fois-ci avec le 2ème fichier.


 
Oui, c'est tout à fait ce que je veux faire. N'existe-t-il pas une fonction unix permettant de faire ca?

n°772400
matafan
Posté le 16-01-2006 à 21:02:38  profilanswer
 

#!/usr/bin/perl
 
use strict;
 
my %f2;
 
open F, $ARGV[1] or die $!;
while (<F> ) {
        $f2{$_} = 1;
}
close F;
 
open F, $ARGV[0] or die $!;
while (<F> ) {
        print unless $f2{$_};
}
close F;

n°772418
Taz
bisounours-codeur
Posté le 16-01-2006 à 21:27:07  profilanswer
 

ben tu fais un sort et après un diff -u


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [UNIX] - comparaison fichiers

 

Sujets relatifs
Permissions d'accès aux fichiersscript unix urgent svp
Migration d'un programme vers UNIX ?Concatener horizontalement des fichiers
pb copie de fichiers avec la commande cpPb: Disparition de fichiers sur une partition en FAT32
problème accès si l'utilisateur n'est pas propriétaire des fichiersuser-group des fichiers cvs
comment restaurer les fichiers dans /boot[UNIX] Compter les fichiers dans un rep
Plus de sujets relatifs à : [UNIX] - comparaison fichiers


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