IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Supprimer les doublons dans un fichier texte


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 7
    Par défaut Supprimer les doublons dans un fichier texte
    Bonjour à tous,

    Je vous explique mon problème.

    J'ai un fichier avec 1 700 000 lignes d'informations du type :
    numéro;clé;A;NOM;PRENOM;....
    numéro;clé;B;NOM;PRENOM;....
    Certaines lignes sont en double et je souhaiterais pouvoir les exclure en supprimant ces lignes.

    J'ai déjà essayé la commande sort, uniq mais ça ne fonctionne pas. Les commandes me suppriment aucunes lignes.
    Auriez-vous une commande à me conseiller ?

    Merci par avance.

    Stéphane

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 660
    Par défaut
    Bonjour,

    donne un échantillon plus large de ton fichier, stp.
    les lignes sont-elles vraiment identiques ?
    il n'y a pas de raisons a priori que les commandes que tu évoques ne fonctionnent pas.

    si quelques champs seulement sont identiques, c'est ces informations qu'il faudra utiliser pour discriminer les doublons.
    ça se fait fréquemment avec (g)awk.
    tu dois pouvoir retrouver des discussions qui en traitent sur notre forum.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    Je crois que uniq ne s'occupe que de comparer les lignes se suivant, mais ne les classe pas avant ...
    Tester ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sort -u fichierorigin.txt > monfichieruniq.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sort fichierorigin.txt  | uniq > monfichieruniq.txt

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juillet 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 7
    Par défaut
    Quelle rapidité... merci...

    Voici un extrait de mon fichier, mais je ne peux vous donner l'exact reproduction car il s'agit de données sensibles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    1222222222222;10;E;JOJO;RAMIREZ;ARIANA;11012015;1;0;0;0;0
    1333333333333;74;E;LOULOU;LOULOU;LOKMANN;16122005;1;1;0;0;0
    1444444444444;30;E;FIFI;FIFI;ASSAN;20062002;1;0;0;0;0
    1444444444444;30;E;FIFI;FIFI;ASSAN;20062002;1;0;0;0;0
    1444444444444;30;E;FIFI;FIFI;ROBERT;20002015;1;0;0;0;0
    1555555555555;73;A;RIRI;RIRI;AHMET;20021969;1;0;0;0;0
    Par exemple, la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1444444444444;30;E;FIFI;FIFI;ASSAN;20062002;1;0;0;0;0
    est présente deux fois et j'aimerais donc pouvoir supprimer la ligne en trop

    J'ai déjà essayé la commande
    sort fichierorigin.txt | uniq > monfichieruniq.txt
    mais cela ne fonctionne pas

  5. #5
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    J'utilise "Linux" sous Windows10 ...
    J'ai stocké
    1222222222222;10;E;JOJO;RAMIREZ;ARIANA;11012015;1;0;0;0;0
    1333333333333;74;E;LOULOU;LOULOU;LOKMANN;16122005;1;1;0;0;0
    1444444444444;30;E;FIFI;FIFI;ASSAN;20062002;1;0;0;0;0
    1444444444444;30;E;FIFI;FIFI;ASSAN;20062002;1;0;0;0;0
    1444444444444;30;E;FIFI;FIFI;ROBERT;20002015;1;0;0;0;0
    1555555555555;73;A;RIRI;RIRI;AHMET;20021969;1;0;0;0;0
    dans test.txt

    et cette commande
    me renvoie
    =>

    1222222222222;10;E;JOJO;RAMIREZ;ARIANA;11012015;1;0;0;0;0
    1333333333333;74;E;LOULOU;LOULOU;LOKMANN;16122005;1;1;0;0;0
    1444444444444;30;E;FIFI;FIFI;ASSAN;20062002;1;0;0;0;0
    1444444444444;30;E;FIFI;FIFI;ROBERT;20002015;1;0;0;0;0
    1555555555555;73;A;RIRI;RIRI;AHMET;20021969;1;0;0;0;0

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juillet 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 7
    Par défaut
    Je vais d'essayer la commande et cela n'a pas fonctionné

    Je me retrouve avec le même nombre de ligne et des lignes en double

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1840652448010;48;A;LEFLAIRE;LEFLAIRE;JONATHAN;12061983;1;0;0;0;0
    1840652448010;48;A;LEFLAIRE;LEFLAIRE;JONATHAN;12061983;1;0;0;0;0
    1840652448010;48;E;LEFLAIRE;LEFLAIRE;NOE;07122014;1;0;0;0;0
    Petite précision je suis sous RHEL Server 6.7

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. supprimer les espaces dans un fichier texte
    Par nguim dans le forum Langage
    Réponses: 3
    Dernier message: 10/03/2014, 13h55
  2. Supprimer les parenthèses dans un fichier texte
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 16/01/2013, 00h52
  3. Supprimer les doublons dans un fichie texte
    Par VIRGINIE87 dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2010, 11h01
  4. [WD12] Chercher les doublons dans un fichier texte
    Par matt1704 dans le forum WinDev
    Réponses: 17
    Dernier message: 11/06/2009, 08h31
  5. Vérifier les doublons dans un fichier texte
    Par Shyboy dans le forum Langage
    Réponses: 2
    Dernier message: 11/07/2007, 09h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo