Разделение длинного ввода на несколько текстовых файлов - PullRequest
0 голосов
/ 05 марта 2009

У меня есть некоторый код, который будет генерировать бесконечное количество строк в выводе. Поэтому я не могу сохранить эти значения в одном выходном файле.

Вместо этого я разбил выходной файл на несколько файлов. Я делю файл по номерам индексов. Теперь я сомневаюсь, что не знаю, сколько номеров будет в моем файле. Так можно ли разделить файл на другой вывод без указания индекса? Например:

  • первые 100 000 строк в формате m.txt
  • от 100 001 до следующих 200 000 в n.txt

Ответы [ 5 ]

1 голос
/ 05 марта 2009

split (1) представляется именно вашим инструментом.

1 голос
/ 05 марта 2009

Если вам не нужно найти конкретную строку по имени файла, вы можете разделить вывод в зависимости от размера файла. Записывайте строки в m1.txt до тех пор, пока следующая строка не станет> 1MB; затем перейдите к следующему файлу - m2.txt.

0 голосов
/ 05 марта 2009

4 способа разделения во время записи:

A) Исправлено количество символов (размер)

B) Исправлено количество строк

C) Исправлен интервал времени до записи

D) Исправлен счетчик функции перед вызовом записи

Исходя из этих разбиений, вы можете назвать выходной файл.

0 голосов
/ 05 марта 2009

Вы можете использовать logrotate для этой цели. У него много опций: посмотрите страницу руководства.

Вот введение в справочную страницу:

"logrotate  is  designed to ease administration of systems that generate
large numbers of log files.  It allows automatic rotation, compression,
removal, and mailing of log files.  Each log file may be handled daily,
weekly, monthly, or when it grows too large."
0 голосов
/ 05 марта 2009

Генерация файлов с работающим индексом. Начните с открытия, например, m_000001.txt. Записать в этот файл фиксированное количество строк. Закрыть файл Откройте следующий файл, например, m_000002.txt и продолжайте.

Убедиться, что диск не переполнен, - это домашняя задача, которую нужно выполнять отдельно. Здесь можно подумать о резервном копировании, сжатии, ротации файлов и т. Д.

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