Forum Programmation.shell Besoin d'aide svp

Posté par  .
Étiquettes : aucune
0
23
mai
2007
Bonjour,
J'ai deux fichiers, je veux prendre le premier parcourir une à une ses ligne et voir si une de ses lignes et contenu dans l'autre fichier.
Je suis pas super douée en shell donc si je peux avoir un p'tit coup de main.
Merci
  • # join

    Posté par  . Évalué à 3.

    Jette un oeil à la commande join, elle semble faire ce que tu souhaites :
    Tu tapes au shell :
    $ join fichier1 fichier2
    et ça te sort les lignes de fichier 2 qui commencent par les lignes rencontrées dans fichier1.
    En espérant que ça aide.
    • [^] # comm

      Posté par  (site web personnel) . Évalué à 3.

      Tu as aussi la commande comm qui par défaut t'affiches les lignes de l'un, de l'autre pui des 2 avec une indentation différente. Les options -1 -2 -3 te permettent de supprimer les parties qui ne t'intéressent pas :

      $ comm -1 -2 file1 file2

      Te donne les lignes communes (-1 -3 pour les lignes du 2e fichier uniquement ...)

      Attention, cela ne fonctionne que pour des fichiers ayant des lignes dans le même ordre.
      • [^] # Re: comm

        Posté par  . Évalué à 2.

        justement mon probleme est que les lignes ne sont pas dans le meme ordre.
        • [^] # Re: comm

          Posté par  (site web personnel) . Évalué à 3.

          Tu as la commande sort qui peut t'aider à les mettre dans le bon ordre :-)
          • [^] # Re: comm

            Posté par  . Évalué à 2.

            lol, wé c vrai, en fait vu ke le but de mon application est de mettre du desordre j ai pas pensé a cette possibilité je voulais garder le fichier tel k il est. Bon v essayer, merci.
            • [^] # Re: comm

              Posté par  . Évalué à 2.

              en fait les commande comm et join finalement ne me servent pas a grand chose :(, aucune d elles ne m affiche le bon resultat, ché pas si c parce ke les fichiers ont une grande taille.
              • [^] # Re: comm

                Posté par  (site web personnel) . Évalué à 2.

                Tu fais bien :
                $ sort file1 > file1.new
                $ sort file2 > file2.new
                $ comm -1 -2 file1.new file2.new

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.