![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Разбить тхт файл не только по строкам, но и по папкам |
|
CMD/BAT - Разбить тхт файл не только по строкам, но и по папкам
|
Новый участник Сообщения: 20 |
В замечательной теме раскрывается вопрос, как разбить большой тхт файл на много мелких по кол-ву строк
Моя задача чуть шире. Есть файл на 10 млн строк. Мне нужно получить 100 папок, в каждой по 100 файлов тхт, в каждом файле по 1000 строк из стартового файла. Названия папок 1,2,3,4,5,...,100 Названия файлов 1.txt, 2.txt, 3.txt, ..., 100.txt Кто-нибудь может помочь с этой непосильной для меня задачей? |
|
Отправлено: 15:15, 11-07-2018 |
Crazy Сообщения: 1235
|
Профиль | Отправить 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 Сообщения: 1235
|
Профиль | Отправить 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 |
|