LinuxForum.Fans
Тема

Разбивка файлов на несколько по количеству строк

Автор: voral 4 сообщений 2987 просмотров
#245654

Так сложилось возникла сегодня необходимость в утилите, которая разбивает большой текстовый по количеству строк. Утилита не сложная, но вдруг кому либо пригодится. Проверял работу под виндой и линуксом.
Запуск:
splitter [опции] <имя_входящего_файла>
Опции:
-s отображать информацию о процессе обработки
-rX разбивать на файлы с количеством строк не более X. Без данного параметра 10000 строк.

в результате получается несколько файлов с именем по следующему правилу:
<имя_исходного_файла>_XXX[.<расширение_если_есть>]
XXX - порядковый номер с лидирующим 0

Коды возврата:
0 - Ok
1 - Ошибка открытия исходного файла
2 - Ошибка создания результрующего файла
3 - Не достаточно параметров передано

Выкладываю пока только исходники. https://github.com/Voral/splitter

ЗЫ И все из-за SQL сервера от одной мелкой фирмы....

#245661

эмм... man split

set( CMAKE_BUILD_TYPE RELEASE )

cmake это Ъ, только не решайте за других! раз уж больше трёх строк пишите и хотите установить умолчания, то оборачивайте в if'ы.

#245671
Fat-Zer написал:
эмм... man split

Некоторые шеллы (собстевенно установлен на машине, на которой эта задача была актуальна) выдают следующее:

text

c:\>man split
"man" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

:)

Fat-Zer написал:

cmake это Ъ, только не решайте за других! раз уж больше трёх строк пишите и хотите установить умолчания, то оборачивайте в if'ы.

Я за других и не решаю. Я делаю так, как на данный момент умею. Это первая проба cmake. И на данный момент прочитана всего лишь одна статья из блога.

Если кому нужен виндовый экзешник - говорите он уже есть готовый.

#245716
"voral" написал:
Некоторые шеллы (собстевенно установлен на машине, на которой эта задача была актуальна) выдают следующее:

ой... вообще страшная система... мне самому с ней пришлось сегодня ***ться... сначала матерился, что средняя кнопка не вставляет, а потом ещё расстроился, что sed'а нет =))

"voral" написал:
Я за других и не решаю. Я делаю так, как на данный момент умею. Это первая проба cmake. И на данный момент прочитана всего лишь одна статья из блога.

просто обычно это указывают при сборке. если хотите задать умолчания, то ИМХО лучше делать так:

text
if(NOT CMAKE_BUILD_TYPE)
     set( CMAKE_BUILD_TYPE RELEASE )
endif(NOT CMAKE_BUILD_TYPE)

а вообще там много лишнего: для такого маленького проекта достаточно трёх строк:

text
cmake_minimum_required ( VERSION 2.6 )
project ( splitter )
add_executable ( splitter src/main.cpp )

причём первая - только для того, чтобы cmake не ругался...

Войдите или зарегистрируйтесь, чтобы ответить.