[shell] comparaison de fichier

Bonjour,

j'ai 2 fichiers contenant des expressions du type :

fichier 1: fichier2:
PC00021 PC00254
PC00231 PC00021
PC00454 PC00291

juste 2 listes en fait, dans les 2 fichiers il ya des entrées en doublon dans l'exemple PC00021

je voudrais créer un fichier 3 ou dedans il n'y aurait que les entrées qui ne pas communes au 2 fichiers.

genre dans l'exemple :

fichier 3:
PC00231
PC00454
PC00254
PC00291

mais comment faire??

diff?
Configuration: red hat
Firefox 3.0.2

5 réponses

  1. Modérateur
    Salut,

    Voir Exemple 2
    1. Merci lami20j !

      je me doutais que ça allait etre un truc tout bete, mais je debute.

      le site a l'air super, je le bookmark ! :)
  2. copy(F1;F3) //metre tous enregistrement de F1 dans F3
    i:=1 // ou i=0 celon le langage (c++ i=0;;;delphi/pascal i=1)
    tanque i<EOF(F2) //// de1 jusqu'a la fin du fichier
    debut
    j=1
    tanque (j<eof(f3)) et (trouver=faux ) // trouver:booleen
    comparer(f2[i],f3[j],trouver)
    si trouver=faux
    inserer(f2[i],f3)
    fin;

    A toi de l'implémenter.
    1. oué ma réponse etait plus nul :p

      sort fichier1 fichier2 | uniq -u > fichier3

      tchou
      1. merci à toi et jipicy, donc en fait si je comprends bien, moi qui suis novice novice en shell, tu crée un fichier 3 qui contient toutes les entrées des fichiers 1et 2 et ensuite tu supprimes les doublons.

        j'y aurais pas pensé j'ai bien fait de poser la question
    2. Hello

      sort fichier1 fichier2 --> ecrit toutes les lignes des fichiers mis en argument dans l'ordre "alphabetique"
      | --> (pipe) envoie la sortie de la commande dans une autre commande ici uniq
      uniq -u --> avec l'option "-u" écrit que les lignes uniques.
      > fichiers --> envoi le resultat de la commande dans le fichier.

      Bye