|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Разбить тхт файл не только по строкам, но и по папкам |
|
CMD/BAT - Разбить тхт файл не только по строкам, но и по папкам
|
Новый участник Сообщения: 20 |
Профиль | Отправить PM | Цитировать В замечательной теме раскрывается вопрос, как разбить большой тхт файл на много мелких по кол-ву строк
Моя задача чуть шире. Есть файл на 10 млн строк. Мне нужно получить 100 папок, в каждой по 100 файлов тхт, в каждом файле по 1000 строк из стартового файла. Названия папок 1,2,3,4,5,...,100 Названия файлов 1.txt, 2.txt, 3.txt, ..., 100.txt Кто-нибудь может помочь с этой непосильной для меня задачей? |
|
Отправлено: 15:15, 11-07-2018 |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать Цитата Busla:
и В первом случае, по конвейеру будет передаваться первая строка только после помещения всего файла в память (что может привести к достаточно длительному ожиданию, если не зависанию, при достаточно большом файле). Во втором случае, первая строка (вернее блок строк) передается после помещения в память некоторого количества строк -readcount <int64>, что значительно ускоряет процесс... в общем, попробуйте, тогда станет понятно в чем разница. |
|
------- Последний раз редактировалось YuS_2, 11-07-2018 в 20:43. Отправлено: 20:31, 11-07-2018 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Busla:
|
|
Отправлено: 20:44, 11-07-2018 | #12 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Все отлично в примере на павершел, один только нюанс - пустая строчка в самом конце, но я ее регуляркой почикаю) Спасибо!
|
Отправлено: 22:00, 11-07-2018 | #13 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать YuS_2, неверно
по умолчанию readcount равно единице, чтобы прочитать весь файл за раз нужно принудительно выставить нуль Вы смешали в одно "буфер чтения" и размер выходного файла. Всё это "значительно ускоряет процесс" пока файлы крохотные. А как только понадобится напилить файл на куски по несколько ГБ (например, чтобы на DVD записать) - так сразу скрипту и поплохеет. |
Отправлено: 22:10, 11-07-2018 | #14 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Busla, YuS_2, в документации сказано, что:
Цитата:
|
|
Отправлено: 22:23, 11-07-2018 | #15 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать А нет, не получается, регуляркой эту строку не видно, удалить массово через notepad++ не получается. Возможно ли переделать скрипт, чтобы он не делал 1001-ю пустую строку?
Заранее большое спасибо! |
Отправлено: 22:38, 11-07-2018 | #16 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Abricosio, там нет «пустой строки»:
где Вы её нашли?! |
Отправлено: 22:45, 11-07-2018 | #17 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Странно, у меня во всех файлах последняя строка пустая, 1001я. Проверял в notepad++ и обычном тхт редакторе
|
Отправлено: 23:04, 11-07-2018 | #18 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Abricosio, это:
не «пустая строка». Пустая строка — вот: Если Вам категорически нужно, чтобы последняя строка не завершалась символами конца строки: — это другое дело. |
Отправлено: 00:32, 12-07-2018 | #19 |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать Цитата Busla:
Цитата Busla:
Лично я говорил о том, что вредно помещать весь файл (при условии, что он достаточно большой) в память, чтобы производить с ним дальнейшие манипуляции. О размерах выходного файла заговорил ты, я ничего об этом не писал. Цитата Busla:
1. Создай текстовый файл (UTF8, хотя это неважно), в 10000000 строк, с одним символом в каждой строке. Размер у него получится не сильно большим (чуть больше 28Мб), но достаточным для эксперимента. Возможно, конфигурация компьютера будет влиять на результат, но это можно "поправить" увеличением количества строк. 2. a) b) 3. Приведи здесь результат эксперимента. Мои результаты: a) TotalSeconds : 6,9191207 b) Неадекватное потребление физ.памяти до 3,5Гб и более процессом powershell, нагрузка процессора в 50% и более, плюс подвисания интерфейса windows. Терпения, чтобы дождаться окончания процесса (если это реально), у меня не хватило. В общем, плохеет не только скрипту и размер у файла не очень-то огромный... |
|||
------- Отправлено: 05:40, 12-07-2018 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] разбить файл на много файлов по шаблону и каждый файл положить в папку | Mezolick | Скриптовые языки администрирования Windows | 3 | 03-02-2017 08:38 | |
CMD/BAT - [решено] разбить по строкам txt | shadowbat | Скриптовые языки администрирования Windows | 54 | 10-11-2015 16:20 | |
CMD/BAT - [решено] Разбить txt файл по строкам и файлам | Acred | Скриптовые языки администрирования Windows | 9 | 12-10-2015 18:08 | |
Router - [решено] Есть подключение по Wi-Fi, но интернет - только по кабелю. | roniro | Сетевое оборудование | 7 | 17-09-2013 13:54 | |
Router - [решено] Подключение к роутеру по Wi-Fi есть, но интернет-только по кабелю. | roniro | Сетевое оборудование | 4 | 06-10-2012 19:20 |
|