另一种选择是将文件加载到数据库中。EG MySQL和MySQL Workbench。
数据库是处理大文件的理想选择
如果您的输入文件仅包含用换行符分隔的单词,则不难。
安装数据库和MySQL Workbench之后,这就是您需要做的。
首先创建模式(假设单词的长度不能超过255个字符,尽管您可以通过增加参数值来更改它)。第一列“ idwords”是主键。
CREATE SCHEMA `tmp` ;
CREATE TABLE `tmp`.`words` (
`idwords` INT NOT NULL AUTO_INCREMENT,
`mywords` VARCHAR(255) NULL,
PRIMARY KEY (`idwords`));
其次导入数据:EG这会将所有单词导入表中(此步骤可能需要一些时间才能完成。我的建议是先使用一个小的单词文件运行测试,一旦确定格式与较大的一个(截断表。IE将其清除并加载完整的数据集)。
LOAD DATA LOCAL INFILE "C:\\words.txt" INTO TABLE tmp.words
LINES TERMINATED BY '\r\n'
(mywords);
此链接可能有助于获取正确的加载格式。
https://dev.mysql.com/doc/refman/5.7/en/load-data.html
EG如果需要跳过第一行,请执行以下操作。
LOAD DATA LOCAL INFILE "H:\\words.txt" INTO TABLE tmp.words
-- FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(mywords);
最后保存排序的文件。这可能还需要一些时间,具体取决于您的PC。
SELECT tmp.words.mywords
FROM tmp.words
order by tmp.words.mywords asc
INTO OUTFILE 'C:\\sorted_words.csv';
您也可以根据需要随意搜索数据。EG这将为您提供升序的前50个字(从第0个或第一个字开始)。
SELECT tmp.words.mywords
FROM tmp.words
order by tmp.words.mywords asc
LIMIT 0, 50 ;
祝你好运
皮特