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

  • Auteur de la discussion Auteur de la discussion salva
  • Date de début Date de début
WRInaute accro
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.
 
WRInaute accro
Re: Supprimer les doublons d'une liste

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
 
WRInaute accro
Re: Supprimer les doublons d'une liste

ortolojf a dit:
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:
sort -u /tmp/test/doublons.txt > /tmp/test/propres.txt
Mais il me reste toujours des doublons.
 
WRInaute accro
Re: Supprimer les doublons d'une liste

salva a dit:
ortolojf a dit:
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:
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
 
WRInaute accro
Re: Supprimer les doublons d'une liste

Import sql, requête GROUP BY (je crois) et export en .txt ?
 
WRInaute accro
Re: Supprimer les doublons d'une liste

Code:
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:
'/' -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.
 
WRInaute accro
Re: Supprimer les doublons d'une liste

OTP a dit:
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
 
WRInaute accro
Re: Supprimer les doublons d'une liste

ortolojf a dit:
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.
 
WRInaute accro
Re: Supprimer les doublons d'une liste

ortolojf a dit:
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.
 
Discussions similaires
Haut