Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment supprimer les lignes en double dans un fichier texte ?

10 réponses
Avatar
Pierre
Bjr,

Soit un fichier texte contenant plus de 200 000 lignes de texte. Ce
fichier est trié par ordre alphabétique. Dans ce fichier il y a pas mal
de lignes en double. Quel outil puis-je utiliser pour supprimer les
lignes en double ?

Jusqu'à présent j'utilisais Excel avec une simple fonction =SI(...)
mais il fallait que mon fichier fasse moi de 65000 lignes. BBedit offre
une fonction grep mais ne permet pas de faire des comparaisons.

Quelle solution ?

10 réponses

Avatar
patpro ~ Patrick Proniewski
In article ,
Pierre wrote:

Jusqu'à présent j'utilisais Excel avec une simple fonction =SI(...)
mais il fallait que mon fichier fasse moi de 65000 lignes. BBedit offre
une fonction grep mais ne permet pas de faire des comparaisons.

Quelle solution ?


lire la doc de BBEdit ? :)
menu text, item "process duplicate lines"

Sinon dans le terminal :
sort -u /ton/fichier > /ton/fichier.new

patpro

Avatar
Franck
Pierre wrote:
Soit un fichier texte contenant plus de 200 000 lignes de texte. Ce
fichier est trié par ordre alphabétique. Dans ce fichier il y a pas mal
de lignes en double. Quel outil puis-je utiliser pour supprimer les
lignes en double ?


Ouvrir un shell et utiliser la commande 'sort -u'

Pour plus d'infos, 'man sort' :-p

Avatar
Patrick Stadelmann
In article ,
Pierre wrote:

Quelle solution ?


TextWrangler (gratuit) permet de le faire, soit via la commande dans le
menu "Text" ou via un script perl dans le menu "#!"

http://www.barebones.com/

Patrick
--
Patrick Stadelmann

Avatar
patpro ~ Patrick Proniewski
In article ,
Patrick Stadelmann wrote:

In article ,
Pierre wrote:

Quelle solution ?


TextWrangler (gratuit) permet de le faire, soit via la commande dans le
menu "Text" ou via un script perl dans le menu "#!"


il a BBEdit :)


patpro


Avatar
Patrick Stadelmann
In article ,
patpro ~ Patrick Proniewski wrote:

In article ,
Patrick Stadelmann wrote:

In article ,
Pierre wrote:

Quelle solution ?


TextWrangler (gratuit) permet de le faire, soit via la commande dans le
menu "Text" ou via un script perl dans le menu "#!"


il a BBEdit :)


Tout le monde ne l'a pas...

Patrick
--
Patrick Stadelmann



Avatar
news77jll
Pierre wrote:

Bjr,

Soit un fichier texte contenant plus de 200 000 lignes de texte. Ce
fichier est trié par ordre alphabétique. Dans ce fichier il y a pas mal
de lignes en double. Quel outil puis-je utiliser pour supprimer les
lignes en double ?

Jusqu'à présent j'utilisais Excel avec une simple fonction =SI(...)
mais il fallait que mon fichier fasse moi de 65000 lignes. BBedit offre
une fonction grep mais ne permet pas de faire des comparaisons.

Quelle solution ?


Il y a la base de données d'AppleWorks ou carrément FMpro (recherche des
doublons immédiate et pas de limitation du nombre de fiches).

--
Cordialement!... A+
JLL (sans les chiffres pour me joindre)
iMac G4 -1 GHz - 512 Mo - Mac OS X 10.3.8 - ADSL 512k

Avatar
Eric Lévénez
Le 22/02/05 8:56, dans ,
« Pierre » a écrit :

Soit un fichier texte contenant plus de 200 000 lignes de texte. Ce
fichier est trié par ordre alphabétique. Dans ce fichier il y a pas mal
de lignes en double. Quel outil puis-je utiliser pour supprimer les
lignes en double ?


La commande unix "uniq" est faite exactement pour cela.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.

Avatar
blanc
Eric Lévénez wrote:

La commande unix "uniq" est faite exactement pour cela.


Ca ne marche pas si les doublons ne sont pas consécutifs.
Par contre sort -u le fait, mais change l'ordre des lignes
Je viens de tester la solution TextWrangler proposée par Patrick, et
elle me paraît la bonne solution.

JPaul.
--
/==/==- Jean-Paul BLANC
/ /--/--// quelque-part (somewhere)
|/| L | en (in)
/|| = ||| FRANCE

Avatar
Eric Lévénez
Le 24/02/05 10:13, dans <1gshfrz.11yzmqhsgx4jN%, « JPaul »
a écrit :

Eric Lévénez wrote:

La commande unix "uniq" est faite exactement pour cela.


Ca ne marche pas si les doublons ne sont pas consécutifs.


J'ai répondu à l'OP qui indiquait que son fichier était trié.
Sinon bien sûr je n'aurais pas fait cette réponse. :->

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.


Avatar
dolbeaur
Pierre wrote:

Soit un fichier texte contenant plus de 200 000 lignes de texte. Ce
fichier est trié par ordre alphabétique. Dans ce fichier il y a pas mal
de lignes en double. Quel outil puis-je utiliser pour supprimer les
lignes en double ?



dans un terminal, la commande 'uniq'

par exemple:

uniq < textavecdoublon.txt > textsansdoublon.txt

faire 'man uniq' pour les options (comptages des répétitions, par
exemple)

HTH

--
Romain Dolbeau