16568
Goto Top

Wie filtere ich eine Textdatei auf Dubletten

Wer kennt das nicht:
Rechtschreibprüfung bei Word hat bei einer Grundinstallation kein einziges Wort in der Benutzer.dic

Das möchte ich jetzt per Default ändern.

Dazu habe ich mir aus div. Bibliotheken (was es nicht alles unter GNU gibt...) ziemlich viele Wörter zusammenklabustert.
Negativ is nur, daß manche doppelt vorkommen.

Alle Wörter habe ich jetzt in einer Textdatei, jedes Wort in einer eigenen Zeile.

Da es weit mehr als 60.000 sind, war eine Filterung über Excel auch nicht mehr drin (sonst wäre es ein Leichtes gewesen, Makro drüber, fertich...).


Weiß jemand eine Möglichkeit, irgendwie die Dubletten aus dem File zu killen?

Textdatei-Größe 2 MB, stelle ich nach Filterung gerne zur freien Verfügung...


Lonesome Walker
edit: 156498 Wörter... face-wink

Content-Key: 36519

Url: https://administrator.de/contentid/36519

Printed on: April 19, 2024 at 19:04 o'clock

Member: filippg
filippg Jul 22, 2006 at 20:03:53 (UTC)
Goto Top
Hallo,

ich glaube ich würde es über eine Datenbank versuchen. Bieten ja alle irgendeinen Massenimport...

Filipp
Mitglied: 16568
16568 Jul 22, 2006 at 20:25:55 (UTC)
Goto Top
Und wie exportiere ich dann wieder, damit auch wieder jedes einzelne Wort in einer Zeile steht?


Lonesome Walker
PS: Bitte sag' nicht, ich soll dann Wort für Wort mit \r\n in die Textdatei zurückschreiben...
Member: filippg
filippg Jul 22, 2006 at 21:52:59 (UTC)
Goto Top
Und wie exportiere ich dann wieder, damit
auch wieder jedes einzelne Wort in einer
Zeile steht?
Naja, entweder gibt es einen Massenexport, oder im schlimmsten Fall schreibst du schnell ein kleines PHP-Skript.

Filipp
Member: Biber
Biber Jul 22, 2006 at 21:53:33 (UTC)
Goto Top
Moin Lomesome Walker,

was soll der Geiz... wenn das Ganze eine einmalige Aktion ist, nicht regelmäßig wiederholt werden soll und weder dem Stockholmer Nobelpreiskomitee noch der Geschäftsleitung schmackhaft gemacht werden muss, dann mach es doch mit (irgend-)einer SQL sprechenden Datenbank.

Selbst dieses MSACCESS, das ja auch immer scherzhaft in einem Atemzug mit relationalen Datenbanksystemen genannt wird, wäre dafür ausreichend.
(Beispiel-)Vorgehen mit Access 2003:
1. Menü "Datei"->"Externe Daten"->"Importieren"->
->(als Importformat auswählen) "Textdateien" ->Deine Rohdatendatei mit Dubletten angeben;
als Trennzeichen "Leerzeichen" angeben
2. Daraufhin wird automatisch eine Tabelle "Rohdatendatei" angelegt mit der Struktur "ID", "Feld1"
3. Damit machst du eine Billigst-Abfrage
SELECT distinct Rohdatendatei.Feld1
FROM Rohdatendatei;
...speicherst diese Abfrage und hast alles dublettenfrei z.B. in der Abfrage "DistinctWords",
4. Als letzten Schritt kann Du diese Abfrage über Menüpunkt "Datei" ->"Exportieren" wieder als Text-Datei rausschreiben.

Das war's... die Wartezeit nicht mitgerechnet hast Du circa 2 Minuten zu tun für ein paar Mausklicks, ein paar Mal "Enter" drücken und das Eintippen des Select-Statements.

Würde ich bei dieser Aufgabenstellung genauso stumpf, unelegant und stressarm erledigen.

Gruß
Biber
Mitglied: 16568
16568 Jul 23, 2006 at 07:48:13 (UTC)
Goto Top
Moinmoin Biber,

*grml* Hast ja recht, hätte da selbst drauf kommen müssen.

Ich habs mit PHP und MySQL realisiert, da ich Deinen Beitrag zu spät gelesen hab' ...


Wer die Benutzer.dic haben möchte, kann sich per PN melden; wenn's wider Erwarten doch sooo viele sind, stell' ich einen http-Download zur Verfügung.


Lonesome Walker
Member: AxelHahn
AxelHahn Jan 16, 2007 at 15:37:08 (UTC)
Goto Top
... eigentlich suche ich grad was anderes ... mein Senf:
von Kommandozeile unter Linux oder GNU-Tools auch Win (CYGWIN):

sort [Textfile] | uniq >[Ausgabedatei]


Viele Grüsse
-= Axel =-
Mitglied: 16568
16568 Jan 16, 2007 at 16:00:47 (UTC)
Goto Top
Nun ja, ich mußte das alles einstellen, weil Word mit so einer großen Datei leider nicht mehr zu Rande kommt, jedoch ist Dein Senf wohl der eleganteste.

Schade, daß ich keine Wertung mehr geben kann face-sad


Lonesome Walker