Diğer bir seçenek de dosyayı bir Veritabanına yüklemek. EG MySQL ve MySQL Tezgahı.
Veritabanları büyük dosyalarla çalışmak için mükemmel adaylardır
Giriş dosyanız yalnızca yeni bir satıra ayrılmış kelimeler içeriyorsa, bu zor olmamalıdır.
Veritabanını ve MySQL Workbench'i kurduktan sonra yapmanız gereken şey budur.
Öncelikle şema oluşturun (bu, argüman değerini artırarak değiştirebilmenize rağmen, kelimelerin 255 karakterden daha uzun olmayacağını varsayar). İlk sütun "idwords" bir birincil anahtardır.
CREATE SCHEMA `tmp` ;
CREATE TABLE `tmp`.`words` (
`idwords` INT NOT NULL AUTO_INCREMENT,
`mywords` VARCHAR(255) NULL,
PRIMARY KEY (`idwords`));
İkincisi, verileri içe aktarın: EG Bu, tüm kelimeleri tabloya aktaracaktır (bu adımın tamamlanması biraz zaman alabilir. Tavsiyem, önce küçük kelimeli bir dosya içeren bir test yapmak ve formatın aynı olduğundan emin olduğunuzda) daha büyük (tabloyu kes. .. IE Temizle) ve tüm veri setini yükle).
LOAD DATA LOCAL INFILE "C:\\words.txt" INTO TABLE tmp.words
LINES TERMINATED BY '\r\n'
(mywords);
Bu bağlantı, yük için doğru formatın alınmasına yardımcı olabilir.
https://dev.mysql.com/doc/refman/5.7/en/load-data.html
EG İlk satırı atlamak gerekirse, aşağıdakileri yaparsınız.
LOAD DATA LOCAL INFILE "H:\\words.txt" INTO TABLE tmp.words
-- FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(mywords);
Sonunda sıralanmış dosyayı kaydedin. Bu, bilgisayarınıza bağlı olarak da biraz zaman alabilir.
SELECT tmp.words.mywords
FROM tmp.words
order by tmp.words.mywords asc
INTO OUTFILE 'C:\\sorted_words.csv';
İstediğiniz gibi istediğiniz gibi verileri de arayabilirsiniz. EG Bu size ilk sıradaki 50 kelimeyi artan bir sıra ile verir (0 ya da ilk kelimeden başlayarak).
SELECT tmp.words.mywords
FROM tmp.words
order by tmp.words.mywords asc
LIMIT 0, 50 ;
İyi şanslar
Pete