[Résolu]Supprimer les doublons d'une liste


salva
WRInaute accro
WRInaute accro
 
Messages: 4278
Inscription: 16 Avr 2006

[Résolu]Supprimer les doublons d'une liste

Message le Mer Avr 01, 2009 10:23

Bonjour,

Je suis à la recherche d’une solution efficace pour supprimer les doublons dans une liste d’url (une url par ligne dans un fichier texte).

J’ai tenté avec Excel (filtre élaboré > extraction sans les doublons) mais le résultat n’est pas probant.

Auriez-vous une solution dans vos cartons ?

Merci.
Dernière édition par salva le Mer Avr 01, 2009 12:15, édité 1 fois.


ortolojf
WRInaute passionné
WRInaute passionné
 
Messages: 1676
Inscription: 14 Aoû 2002

Re: Supprimer les doublons d'une liste

Message le Mer Avr 01, 2009 10:37

Bonjour

Faut trier d'abord...

Sinon, l'algorithme aura une durée O(n2) ( durée d'exécution proportionnel au carré du nombre d'éléments. )

Tu peux trier un fichier sous Linux/Unix, avec la commande Shell: sort , et éliminer les doublons automatiquement, en spécifiant le paramètre -u

Faire un 'man sort' avant pour s'informer des paramètres de critères de tri ( alphabétiques, numériques, emplacement dans chaque lignes du fichier, etc... )

Bien à vous.

Amicalement.

Jean-François Ortolo


salva
WRInaute accro
WRInaute accro
 
Messages: 4278
Inscription: 16 Avr 2006

Re: Supprimer les doublons d'une liste

Message le Mer Avr 01, 2009 11:37

ortolojf a écrit:Faire un 'man sort' avant pour s'informer des paramètres de critères de tri ( alphabétiques, numériques, emplacement dans chaque lignes du fichier, etc... )

Déjà testé avec
Code: Tout sélectionner
sort -u /tmp/test/doublons.txt > /tmp/test/propres.txt

Mais il me reste toujours des doublons.


ortolojf
WRInaute passionné
WRInaute passionné
 
Messages: 1676
Inscription: 14 Aoû 2002

Re: Supprimer les doublons d'une liste

Message le Mer Avr 01, 2009 11:59

salva a écrit:
ortolojf a écrit:Faire un 'man sort' avant pour s'informer des paramètres de critères de tri ( alphabétiques, numériques, emplacement dans chaque lignes du fichier, etc... )

Déjà testé avec
Code: Tout sélectionner
sort -u /tmp/test/doublons.txt > /tmp/test/propres.txt

Mais il me reste toujours des doublons.



Bonjour...

Il manque les paramètres de sort, pour spécifier les critères de tri.

Je le dis et le répète: Faire 'man sort' pour se renseigner sur tous les paramètres.

D'autre part, il suffit qu'un critère de tri sur deux lignes différentes ait une seule différence d'un seul caractère, pour être considérés comme différents.

Donc méfiance...

Bien à vous.

Amicalement.

Jean-François Ortolo


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Re: Supprimer les doublons d'une liste

Message le Mer Avr 01, 2009 12:04

Import sql, requête GROUP BY (je crois) et export en .txt ?


salva
WRInaute accro
WRInaute accro
 
Messages: 4278
Inscription: 16 Avr 2006

Re: Supprimer les doublons d'une liste

Message le Mer Avr 01, 2009 12:14

Code: Tout sélectionner
sort -u -t '/' -k 1,5 /tmp/test/doublons.txt > /tmp/test/propre.txt

Ça fonctionne avec un paramètre de tri par champ
Code: Tout sélectionner
'/' -k 1,5 (pour mon exemple, à adapter donc où '/' délimite les champs et -k 1,5 pour stipuler la recherche sur le 5ème champ)

Merci messieurs.
Dernière édition par salva le Mer Avr 01, 2009 12:24, édité 1 fois.


ortolojf
WRInaute passionné
WRInaute passionné
 
Messages: 1676
Inscription: 14 Aoû 2002

Re: Supprimer les doublons d'une liste

Message le Mer Avr 01, 2009 12:22

OTP a écrit:Import sql, requête GROUP BY (je crois) et export en .txt ?



Bonjour

Je n'ai pas très bien compris la requête initiale en fait...

Si deux lignes diffèrent ne serait-ce que d'un caractère ( pas seulement les critères de tri ), il ne peut y avoir élimination des doublons, par définition, puisqu'il y a deux lignes différentes.

Même chose pour une requête GROUP BY.

C'est faisble mais lourd... Encore faut-il que les types des champs dans la table importée, soient choisis correctement ( numérique ou alphabétique ).

...Faudrait que Slava nous donne un eexemple de deux lignes consécutives non fusionnées après le tri... On pourrait se faire une idée de ce qui a cloché dans le sort.

A mon avis, il faut faire d'abord les commandes suivantes sous le Shell:

LC_ALL=C
export LC_ALL

Cela définit le charset par défaut des caractères des lignes.

En tout cas, sort ça marche, mais faut consulter 'man sort' pour fixer les paramètres... On n'a rien sans rien.

Il se peut très bien que ces deux lignes consécutives aient de petites différences minimes... Des 0 en tête de nombres, etc...

D'ailleurs, il faut bien traiter les nombres comme des nombres, et le lettres comem des lettres, parfois sans tenir compte de la casse, etc...

Bien à vous.

Amicalement.

Jean-François Ortolo


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Re: Supprimer les doublons d'une liste

Message le Mer Avr 01, 2009 12:27

ortolojf a écrit: Si deux lignes diffèrent ne serait-ce que d'un caractère ( pas seulement les critères de tri ), il ne peut y avoir élimination des doublons, par définition, puisqu'il y a deux lignes différentes.

Même chose pour une requête GROUP BY.


Je me plante peut-être mais pour moi les doublons sont regroupés (mais ce n'est peut-être pas GROUP BY).
J'utilise cette méthode sur un de mes sites.

Enfin, c'est résolu, c'est le principal.


salva
WRInaute accro
WRInaute accro
 
Messages: 4278
Inscription: 16 Avr 2006

Re: Supprimer les doublons d'une liste

Message le Mer Avr 01, 2009 12:31

ortolojf a écrit:Si deux lignes diffèrent ne serait-ce que d'un caractère ( pas seulement les critères de tri ), il ne peut y avoir élimination des doublons, par définition, puisqu'il y a deux lignes différentes.

Tous mes doublons étaient strictement identiques à la case et au nombre de caractère près.

Il suffisait juste de filtrer une partie de l'url décomposée en champ (par les "/") et représenté dans mon cas par "1,5" pour le 5ème champ.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

  • Stratégies de mots-clés
    Cet outil vous permet de créer à partir de quelques mots-clés une liste d'expressions constituées des mots pris dans tous les ordres possibles. Il sert aux analyses de positionnement et achats de mots-clés.
  • Lister les sous-domaines
    Cet outil vous permet de trouver la liste des sous-domaines (indexés) d'un site.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités