дедупликация строк в большом файле

Размер файла – 962 120 335 байт.

HP-UX ****** B.11.31 U ia64 ****** Лицензия на неограниченное количество пользователей

hostname> what /usr/bin/awk /usr/bin/awk: main.c $Date: 2009/02/17 15:25:17 $Revision: r11.31/1 PATCH_11.31 (PHCO_36132) run.c $Date: 2009/02/17 15:25:20 $Revision: r11.31/1 PATCH_11.31 (PHCO_36132) $Revision: @(#) awk R11.31_BL2010_0503_1 PATCH_11.31 PHCO_40052 hostname> what /usr/bin/sed /usr/bin/sed: sed0.c $Date: 2008/04/23 11:11:11 $Revision: r11.31/1 PATCH_11.31 (PHCO_38263) $Revision: @(#) sed R11.31_BL2008_1022_2 PATCH_11.31 PHCO_38263 hostname>perl -v This is perl, v5.8.8 built for IA64.ARCHREV_0-thread-multi hostname:> $ file /usr/bin/perl /usr/bin/perl: ELF-32 executable object file - IA64 hostname:> $ file /usr/bin/awk /usr/bin/awk: ELF-32 executable object file - IA64 hostname:> $ file /usr/bin/sed /usr/bin/sed: ELF-32 executable object file - IA64 

Здесь нет инструментов GNU.
Какие у меня варианты?

Как удалить повторяющиеся строки в большом текстовом файле с несколькими GB?

а также

http://en.wikipedia.org/wiki/External_sorting#External_merge_sort

 perl -ne 'print unless $seen{$_}++;' < file.merge > file.unique 

бросает

 Out of Memory! 

Полученный файл 960 МБ объединяется с файлами указанных ниже размеров, средний размер которых составляет 50 МБ 22900038, 24313871, 25609082, 18059622, 23678631, 32136363, 49294631, 61348150, 85237944, 70492586, 79842339, 72655093, 73474145, 82539534, 65101428, 57240031, 79481673, 539293, 38175881

Вопрос: Как выполнить сортировку внешнего сортировки и дедуплицировать эти данные? Или, как дедуплицировать эти данные?

  • Редактирование RTF-файлов в текстовом режиме
  • Создание символических ссылок в каталоге etc без доступа root
  • Составить список изображений с именем
  • Синонимы (из тезауруса) в Emacs
  • Сортировка входного файла по результатам регулярного выражения
  • Симметричная разностная труба?
  • Измените родительский процесс процесса?
  • 3 Solutions collect form web for “дедупликация строк в большом файле”

    Мне кажется, что процесс, который вы выполняете в данный момент, это то, что не удается с ошибкой вашей памяти:

    1. Создание нескольких файлов данных
    2. Объедините их вместе
    3. Сортировка результата, отбрасывание повторяющихся записей (строк)

    Я думаю, что вы должны выполнить следующий процесс

    1. Создание нескольких файлов данных
    2. Сортируйте каждый, отбрасывая дубликаты ( sort -u )
    3. Объедините полученный набор файлов данных, отбросив дубликаты ( sort -m -u )

    Конечно, нет инструментов GNU / Linux: что является частью системы управления исходными кодами (SCCS), которая, как мне кажется, вообще не существует в Linux.

    Итак, предположительно вы находитесь в Unix. Там алгоритм сортировки способен справиться с этими проблемами: Алгоритмические данные команды UNIX Sort указывают, что ввод размера M с памятью размера N подразделяется на куски M / N, которые вписываются в память и которые обрабатываются после этого.

    Он должен соответствовать законопроекту.

     % perl -ne 'if ( $seen{$_}++ ) { $count++ ; if ($count > 1000000) { $seen = () ; $count = 0 ; } } else { print ; }' <eof a a a b c a a a b c eof a b c % 
    Interesting Posts

    Медленная загрузка UEFI («загрузка начального ramdisk» занимает 20 секунд.)

    найти оригинальное видео, если у вас есть короткий клип от него

    Как установить системное соединение через прокси-сервер

    Потеря статического IP-адреса и получение IP-адреса DHCP

    Msgstr "sudo: apt-get: команда не найдена." После удаления некоторых пакетов

    Libinput 3 жесты пальца

    Nslookup: команда не найдена ошибка в RHEL / CentOS 7

    Перенаправление stdout и stderr все еще печатает на stdout

    Показать веб-страницу, после подключения к открытой точке доступа Wi-Fi

    Почему я не могу открыть оболочку из конвейерного процесса?

    Разрешения повреждены?

    shell проверяет, содержит ли строка нескольких строк указанный шаблон в последней строке

    Ошибки при запуске моей системы Wheezy

    Как добавить огромный архив в архив и удалить его параллельно

    Ограничьте стандартных пользователей для запуска команды с определенным аргументом

    Linux и Unix - лучшая ОС в мире.