Вывод командной строки для разделения файлов

2

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

  • Разделить в зависимости от размера файла. Если он скажет 500kb, то создайте новый файл
  • Разделить на основе строк в файле. Если доходит до 1000 строк, то создайте новый файл

Конечно, это также означает, что мне нужно имя переменной для вывода

Это команда, которую я запускаю сейчас:

java -jar "C:\Processors\myProcessor.jar" >> "C:\Processors\myprocessor.log"

Хотелось бы, чтобы файл myprocessor.log был разбит на файлы соответственно.

elcool
источник

Ответы:

4

Команда split делает именно то, что вам нужно, с опциями разделения по размеру файла или по количеству строк. Со страницы руководства :

split - разбить файл на части

Вывести кусочки фиксированного размера INPUT в PREFIXaa, PREFIXab, ...; размер по умолчанию - 1000 строк, а по умолчанию PREFIX - `x '. Если нет INPUT или когда INPUT равен -, считайте стандартный ввод.

... чик ...

-b, --bytes = SIZE ставить SIZE байт на выходной файл

-l, --lines = NUMBER ставить NUMBER строк в выходной файл

Вы можете получить команду split в пакете GnuWin32 CoreUtils для использования на компьютере с Windows.

Ян С.
источник
0

Если вы хотите сделать это без изменения myProcessor.jar, вам нужно будет постобработать файл журнала. Я подозреваю, что вы могли бы сделать это в Powershell, но мне не сразу понятно, как. В Windows нет ничего, чтобы сделать это.

uSlackr
источник
0

я считаю, что то, что вы пытаетесь сделать, требует написания скрипта как минимум (только командная строка не поможет)

для написания сценариев я бы порекомендовал написать скрипт на Ruby (Ruby - очень мощный и чрезвычайно простой в изучении язык - очень дружелюбный). написание командного файла, чтобы сделать это, съест ваш мозг (по крайней мере, мой)

Андрей
источник
да ... но я не вижу другого пути. Я должен был бы переписать весь код.
elcool