Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Разбить файл по N строк

Ответить
Настройки темы
CMD/BAT - Разбить файл по N строк

Новый участник


Сообщения: 27
Благодарности: 2

Профиль | Отправить PM | Цитировать


Здравствуйте, как можно разбить файл по N строк?
Допустим у меня файл, где 100млн строк, надо разбить его на файлы по 10млн строк, последний файл может быть меньше (если кол-во не позволяет)

Находил BAT и PowerShell, но они слишком медленно работали...

Отправлено: 19:33, 22-01-2023

 

Аватара для dmitryst

Ветеран


Сообщения: 7114
Благодарности: 886

Профиль | Отправить PM | Цитировать


Цитата Asdshka:
100млн строк »
Цитата Asdshka:
они слишком медленно работали.. »
На таком количестве строк будет работать медленно всё, разве что, кроме ассеблера
На крайняк, можно попросить фрилансеров написать улититу на С++

PowerShell:
Код: Выделить весь код
  gc file.txt -readcount 1000 | ForEach-Object { $i=0 } { $_ | Out-File "new_file${i}.txt"; $i++}
gc - сокращенный вариант команды GetContent (чтение файла);

file.txt - исходный многострочный файл, который нужно разделить на несколько с меньшим количеством строк;

1000 - число строк в каждом файле на выходе;

new_file${i}.txt - маска для имени файлов на выходе, вместо ${i} будет инкремент числа от 0 и далее.

-------
Осваиваю FreeBSD


Последний раз редактировалось dmitryst, 22-01-2023 в 19:48.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:36, 22-01-2023 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1171
Благодарности: 487

Профиль | Отправить PM | Цитировать


Цитата Asdshka:
у меня файл, где 100млн строк, надо разбить его на файлы по 10млн строк »
powershell
Код: Выделить весь код
measure-command{

$fld = '.\test'
$fin = 'test.txt'
$max = 10000000
$reader = [io.streamreader]::new($fin)
$i,$n = 0,1

if (!(test-path $fld -patht 'Container')){$null = md $fld}
while ($reader.peek() -ne -1) {
	$fout = $fld + '\' + $n + '.txt'
	$writer = [io.streamwriter]::new($fout)
	while ($i -lt $max){
		$writer.writeline($reader.readline())
		$i++
		if ($reader.peek() -eq -1){$i = $max}
	}
	$i = 0
	$n++
	$writer.dispose();$writer.close()
}
$reader.dispose();$reader.close()

}
файл размером 1.5Гб, 100000000 строк
результат скорости:
Цитата:
TotalSeconds : 121,5333788

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:04, 22-01-2023 | #3


Аватара для dmitryst

Ветеран


Сообщения: 7114
Благодарности: 886

Профиль | Отправить PM | Цитировать


YuS_2, да, таки ваш шворц быстрее

-------
Осваиваю FreeBSD


Отправлено: 08:59, 23-01-2023 | #4


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Можно так попробовать (git bash)
Код: Выделить весь код
.\bash.exe -c "split 'd:\temp\contig.txt' 'D:\temp\part' -l 10000000 -d -a 3"

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:09, 23-01-2023 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Разбить файл по N строк

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - разбить файл на несколько по условию или по фильтру shadowbat Скриптовые языки администрирования Windows 8 22-09-2022 15:33
CMD/BAT - Разбить файл (столбцы) на 3 файла (больше 100000 строк) paulomyaulo Скриптовые языки администрирования Windows 5 01-04-2022 19:13
CMD/BAT - Разбить тхт файл не только по строкам, но и по папкам Abricosio Скриптовые языки администрирования Windows 23 13-07-2018 20:39
CMD/BAT - [решено] разбить файл на много файлов по шаблону и каждый файл положить в папку Mezolick Скриптовые языки администрирования Windows 3 03-02-2017 08:38
CMD/BAT - [решено] разбить/разделить файл по количеству строк shmel_sv@vk Скриптовые языки администрирования Windows 3 15-01-2015 21:07




 
Переход