Как получить количество строк большого файла, не менее 5G - PullRequest
10 голосов
/ 28 марта 2012

Как получить количество строк большого файла, как минимум, 5G.самый быстрый подход с использованием оболочки.

Ответы [ 2 ]

14 голосов
/ 28 марта 2012

Шаг 1: head -n filename> newfile // получить первые n строк в newfile , например, n = 5

Шаг 2: Получить огромный размер файла, A

Шаг 3: Получить размер нового файла, B

Шаг 4: (A / B) * n приблизительно равно точному количеству строк.

Установить n, чтобы разные значения, сделано в несколько раз больше, тогда получите среднее.

8 голосов
/ 28 марта 2012

Самый быстрый подход, вероятно, будет wc -l.

Команда wc оптимизирована для выполнения именно таких задач.Маловероятно, что все, что вы можете сделать (кроме как на более мощном оборудовании), будет быстрее.

Да, подсчет строк в текстовом файле объемом 5 гигабайт идет медленно.Это большой файл.

Единственная альтернатива - хранить данные в каком-то другом формате, например, в базе данных, возможно, в файле с записями фиксированной длины.Преобразование вашего текстового файла объемом 5 гигабайт в другой формат займет по крайней мере так же неправильно, как и запуск на нем wc -l, но может стоить того, если вымного считать линии.Невозможно сказать, что компромиссы без дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...