Задать вопрос
@olegun08

Имею базу в формате txt размером 2gb, как отсортировать по количеству символов на строку?

имею базу в формате txt размером 2gb, нужно отсортировать по количеству символов на строку с сохранением в разные файлы.
  • Вопрос задан
  • 345 просмотров
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 4
@rPman
Для таких операций уже несколько десятилетий в linux существует утилита awk со своим языком программирования (он достаточно простой хоть и странный), так же можно соорудить регулярное выражение и с помощью утилиты sed или grep, несколькими проходами пройти по файлу, и сначала вывести все короткие строки, вторым проходом все длинные.

так же можно написать приложение на любом языке программирования, построчно читать файл, измерять длину строки или какое тебе нужно условие и записывать в нужный файл, кода строк на 5-6
Ответ написан
Комментировать
xotkot
@xotkot
ответы это убийцы вопросов
как-то так
awk "{print length,\$0}" FILE_IN |sort -n |cut -d ' ' -f 2- > FILE_OUT

{1} | {2} | {3}
{1} -- добавляем количество символов в начало каждой строки (формируем первый столбец)
{2} -- сортируем строки по первому столбцу
{3} -- удаляем первый столбец
Ответ написан
Внести данные в реляционную базу данных (SQl Server, MySql, PostgreSql) и отсортировать запросом
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Это задача на смекалку. Тут на самом деле сортировать не надо. Тут нужен роутинг слов в разные файлы.
В 1 проход делается. Разумеется мы должны предполагать что в 2Гб файле будут не сильно длинные строки.

Допустим для среднего текстового файла 80 символов на строку (стандарт такой был в 20м веке) мы получим
80 файлов.

По смыслу это похоже на сортировку подсчетом. Это когда кардинальность выборки крайне низка. Гендер например.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽