Eine andere Möglichkeit besteht darin, die Datei in eine Datenbank zu laden. EG MySQL und MySQL Workbench.
Datenbanken sind perfekte Kandidaten für die Arbeit mit großen Dateien
Wenn Ihre Eingabedatei nur Wörter enthält, die durch eine neue Zeile getrennt sind, sollte dies nicht zu schwierig sein.
Nachdem Sie die Datenbank und MySQL Workbench installiert haben, müssen Sie dies tun.
Erstellen Sie zuerst das Schema (dies setzt voraus, dass Wörter nicht länger als 255 Zeichen sind, obwohl Sie dies durch Erhöhen des Argumentwerts ändern können). Die erste Spalte "idwords" ist ein Primärschlüssel.
CREATE SCHEMA `tmp` ;
CREATE TABLE `tmp`.`words` (
`idwords` INT NOT NULL AUTO_INCREMENT,
`mywords` VARCHAR(255) NULL,
PRIMARY KEY (`idwords`));
Zweitens importieren Sie die Daten: ZB Dies importiert alle Wörter in die Tabelle (dieser Schritt kann eine Weile dauern. Mein Rat wäre, zuerst einen Test mit einer kleinen Wortdatei durchzuführen, und wenn Sie sicher sind, dass das Format das gleiche ist wie der größere (kürzen Sie die Tabelle. IE Clear it out und laden Sie den vollständigen Datensatz).
LOAD DATA LOCAL INFILE "C:\\words.txt" INTO TABLE tmp.words
LINES TERMINATED BY '\r\n'
(mywords);
Dieser Link kann dabei helfen, das richtige Format für das Laden zu finden.
https://dev.mysql.com/doc/refman/5.7/de/load-data.html
EG Wenn Sie die erste Zeile überspringen müssen, gehen Sie folgendermaßen vor.
LOAD DATA LOCAL INFILE "H:\\words.txt" INTO TABLE tmp.words
-- FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(mywords);
Speichern Sie schließlich die sortierte Datei. Dies kann auch abhängig von Ihrem PC eine Weile dauern.
SELECT tmp.words.mywords
FROM tmp.words
order by tmp.words.mywords asc
INTO OUTFILE 'C:\\sorted_words.csv';
Sie können die Daten auch nach Belieben durchsuchen. EG Dies gibt Ihnen die ersten 50 Wörter in aufsteigender Reihenfolge (ab dem 0. oder ersten Wort).
SELECT tmp.words.mywords
FROM tmp.words
order by tmp.words.mywords asc
LIMIT 0, 50 ;
Viel Glück,
Pete