Как объединить большие текстовые файлы размером 10 ГБ + в 1 текстовый файл и удалить дубликаты строк из этого 1 текстового файла самым быстрым способом?

685
DeathRival

просто мой вопрос другой, потому что мне нужно объединить файлы в один, а затем удалить дубликаты строк из этого файла, который будет более 50 ГБ TXT, у меня есть большой. TXT из 10 ГБ + файлов

я хочу объединить их в 1 .txt файл

затем удалите все дубликаты строк из этого 1 большого файла .txt, который будет около 50 ГБ текстового файла или 100 ГБ текстового файла

так, что может обработать такой большой файл и удалить дубликаты из него гладко?

Мне нужен самый быстрый способ, потому что я попробовал bouth notepad ++ и emeditor, они работают очень тяжело с ними для слияния или удаления дубликатов и берут навсегда

у меня 12 ГБ оперативной памяти

-1
Сценарии, вероятно, будут самыми быстрыми, но имейте в виду, что работа с файлами такого большого размера означает, что на это уйдет целая вечность. Поэтому самый быстрый способ - это вопрос мнения. Чтобы найти самый быстрый, потребуется больше времени, чем просто сделать это. LPChip 6 лет назад 0
это мне не помогло, и я ничего не понял в этом, и мой вопрос особенно отличается, так как я ищу более крупные файлы, минимум 10 ГБ и могу перейти к 100 ГБ, и у меня есть свободное место для работы уже более 300 ГБ DeathRival 6 лет назад 0
Хорошо, я нашел способ из Как удалить дубликаты текстовых строк из файлов размером более 4 ГБ, вы можете удалить мой вопрос, если вы хотите, чтобы я нашел: http://www.pilotedit.com/index.html спасибо за то, кто опубликовал его DeathRival 6 лет назад 0
Ramhound уже указал вам на хороший ответ. Но позвольте мне добавить несколько вещей. Вы можете объединить несколько текстовых файлов, используя команду копирования. Откройте командную строку, используйте `cd` для перемещения в папку с вашими текстовыми файлами, а затем наберите` copy file1.txt + file2.txt комбинированный_файл.txt`. Это объединит оба файла и займет около 3 секунд на ГБ, если вы работаете на SSD. Это будет медленнее на жестком диске. SpiderPig 6 лет назад 0
Упомянутая в другом потоке команда `sort -u` также очень быстрая и может обрабатывать 0,1 ГБ в секунду. SpiderPig 6 лет назад 0

1 ответ на вопрос

1
chloesoe

Если вы используете Linux, вы можете сделать это так:

cat aa.txt bb.txt | sort -u > newfile.txt 

Здесь aa.txt - первый текстовый файл, а bb.txt - второй.

sort -uсортирует файл по алфавиту и с помощью -u(см. также здесь https://stackoverflow.com/a/9377125/7311363 ) вы удаляете дубликаты. Когда > newfile.txtвы пишете это в newfile.txt.

А если вы не используете Linux, загрузитесь с LiveCD / DVD и смонтируйте ваш привод, а затем сделайте это. ivanivan 6 лет назад 1