Как разделить текстовый файл на несколько частей
Позволяет разрезать большой текст по строкам с сохранением частей в разные файлы. Это удобно для подготовки большого текста к чтению на мобильном устройстве или для быстрого просмотра протоколов. Очень просто вывести текст в формате HTML с возможностью задания ссылок на первую, предыдущую, следующую и последнюю страницы; задание длины строки позволит разбить таблицу по группам колонок одинаковой ширины.
Можно разделить книгу по главам, отчет по итоговым строкам, протокол по количеству строк или задать регулярное выражение позволяющее определить точку деления текста (например выражение \d.\d.\d\s+\d:\d:\d$ определит строки в конце которых записаны дата и время).
Деление по содержимому файла возможно только для файлов в кодировке UNICODE или WINDOWS-1251
Для обработки файлов с частым повторением строки деления(протоколы,лог-файлы и т.д. ) можно задать минимальную длину после которой будет определяться точка деления.
Чтобы разделить текстовый файл (несколько файлов или папок с файлами) необходимо перетащить выделенные для обработки элементы на файл(или ярлык) скрипта и указать как надо разбить (для широких таблиц можно задать длину строки)
Если перетащить папку(несколько папок), то обработаются все файлы из этих папок. Ранние версии программы не поддерживают обработку группы элементов
Запуск из коммандной строки версии HTA: divtxt9.hta будет обработан файл или папка, указанные интерактивно divtxt9.hta folder_name где folder_name - папка для обработки - будет обработан каждый файл из этой папки Запуск из коммандной строки в интерактивном режимеk(для WINDOWS XP): wscript divtxt9.js file_name file_name1 file_name2 . cscript divtxt9.js file_name file_name1 file_name2 . > log_file где file_name - файлы или папки для обработки
Ранние версии программы, которые можно скачать бесплатно:
Разделение текстового файла,группы файлов(или папок), подстроке, регулярному выражению, по размеру можно задавать минимальный размер файла divtxt6, divtxt7, divtxt8, divtxt9
Разделение текстового файла,группы файлов или папок, подстроке, регулярному выражению, по размеру divtxt5
Разделение текстового файла количеству строк, подстроке, регулярному выражению, по размеру divtxt3, divtxt4(увеличено количество команд)
Разделение текстового файла по строкам, по размеру divtxt2
Разделение текстового файла по строкам и по размеру на равные части (разделение по строкам) divtxt1 (указав длину строки можно разбить таблицу по графам для печати)
Разделение текстового файла на части равные по числу строк divtxt
На главную Сообщить об ошибке
Copyright © 2010-2014 scriptapplications.narod.ru при использовании материалов обязательна ссылка на сайт
Как разделить файл на части в Windows
Если для передачи, хранения или других целей вам потребовалось разделить большой файл на несколько частей, сделать это в Windows 11, 10 и предыдущих версиях системы можно несколькими способами: с помощью команд PowerShell и командной строки, в сторонних программах, или с помощью онлайн-сервисов, впрочем в последнем случае ОС не будет играть роли.
В этой инструкции подробно о нескольких способах разделить большой файл на несколько частей, а также кратко о разделении файлов различных типов: pdf и txt, видео и других.
Способы разделить большой файл на части
Эта часть инструкции не касается какого-то определенного типа файлов: разделяется любой файл, независимо от типа и содержимого — это может быть текстовый файл или двоичный, медиа или что-то ещё. Для большинства из них чтение станет невозможным до последующего объединения частей.
Разделение файла на несколько частей в PowerShell
Первая возможность — использовать команды и скрипты PowerShell.
FIleSplitter
Если вы не готовы самостоятельно писать такие скрипты, рекомендую использовать готовый модуль для разделения файлов:
- Запустите PowerShell от имени Администратора. В Windows 11 и Windows 10 это можно сделать, нажав правой кнопкой мыши по кнопке «Пуск» и выбрав пункт «Windows Powershell (Администратор)» или «Терминал Windows (Администратор)».
- Установите модуль FileSplitter с помощью команды
Install-Module -Name FileSplitter

в процессе потребуется подтвердить установку вводом Y и нажатием Enter.
Примеры использования команд:
Split-File -Path "C:\test.zip" -PartSizeBytes 2.5MB
Делит файл C:\test.zip на части размером 2.5 Мб с именами testzip.00.part, testzip.01.part и далее в том же расположении, где хранится оригинальный файл.
Join-File -Path "C:\test.zip"
Команда ищет файл c:\testzip.00.part и остальные части, объединяет их в файл C:\test.zip
Теперь несколько примеров скриптов PowerShell которые могут быть полезны, если вы захотите проработать свою реализацию.
Разделение текстового файла в PowerShell
Скрипт для разделения файла с текстовым содержимым (txt, log и других) на части установленного в первой строке размера, при этом разделение происходит по строкам без их обрыва посередине:
$upperBound = 1MB $ext = "txt" $rootName = "txt_" $reader = new-object System.IO.StreamReader("C:\text.txt") $count = 1 $fileName = "." -f ($rootName, $count, $ext) while(($line = $reader.ReadLine()) -ne $null) < Add-Content -path $fileName -value $line if((Get-ChildItem -path $fileName).Length -ge $upperBound) < ++$count $fileName = "." -f ($rootName, $count, $ext) > > $reader.Close()
Разделение и объединение произвольного двоичного файла
Скрипт для разделения произвольного файла на части:
function Split-Files < [CmdletBinding()] Param ( [Parameter(Mandatory = $true, ValueFromPipeLine = $true, ValueFromPipelineByPropertyName = $true)] [String] $InputFile, [Parameter(Mandatory = $true)] [String] $OutputDirectory, [Parameter(Mandatory = $false)] [String] $OutputFilePrefix = "chunk", [Parameter(Mandatory = $false)] [Int32] $ChunkSize = 4096 ) Begin < Write-Output "Beginning file split. " >Process < if (-not (Test-Path -Path $OutputDirectory)) < New-Item -ItemType Directory $OutputDirectory | Out-Null Write-Verbose "Created OutputDirectory: $OutputDirectory" >$FileStream = [System.IO.File]::OpenRead($InputFile) $ByteChunks = New-Object byte[] $ChunkSize $ChunkNumber = 1 While ($BytesRead = $FileStream.Read($ByteChunks, 0, $ChunkSize)) < $OutputFile = Join-Path -Path $OutputDirectory -ChildPath "$OutputFilePrefix$ChunkNumber" $OutputStream = [System.IO.File]::OpenWrite($OutputFile) $OutputStream.Write($ByteChunks, 0, $BytesRead) $OutputStream.Close() Write-Verbose "Wrote File: $OutputFile" $ChunkNumber += 1 >> End < Write-Output "Finished splitting file." >> function Unsplit-Files < [CmdletBinding()] Param ( [Parameter(Mandatory = $true)] [String] $InputDirectory, [Parameter(Mandatory = $false)] [String] $InputFilePrefix = "chunk", [Parameter(Mandatory = $true)] [String] $OutputDirectory, [Parameter(Mandatory = $true)] [String] $OutputFile ) Begin < Write-Output "Beginning file unsplit. " >Process < if (-not (Test-Path -Path $OutputDirectory)) < New-Item -ItemType Directory $OutputDirectory | Out-Null Write-Verbose "Created OutputDirectory: $OutputDirectory" >$OutputPath = Join-Path -Path $OutputDirectory -ChildPath $OutputFile $OutputStream = [System.Io.File]::OpenWrite($OutputPath) $ChunkNumber = 1 $InputFilename = Join-Path -Path $InputDirectory -ChildPath "$InputFilePrefix$ChunkNumber" while (Test-Path $InputFilename) < $FileBytes = [System.IO.File]::ReadAllBytes($InputFilename) $OutputStream.Write($FileBytes, 0, $FileBytes.Count) Write-Verbose "Unsplit File: $InputFilename" $ChunkNumber += 1 $InputFilename = Join-Path -Path $InputDirectory -ChildPath "$InputFilePrefix$ChunkNumber" >$OutputStream.close() > End < Write-Output "Finished unsplitting file." >>
Пример использования (импорт модуля, разбиение файла и объединение):
Import-Module C:\Split-Files.ps1 Split-Files -InputFile "путь_к_большому_файлу.zip" -OutputDirectory "путь_к_месту_сохранения" -ChunkSize РАЗМЕР_ЧАСТИ_В_БАЙТАХ -Verbose Unsplit-Files -InputDirectory "путь_к_месту_хранения_частей_файла" -OutputDirectory "путь_к_месту_сохранению_объединенного_файла" -OutputFile имя_объединенного_файла.zip
MakeCab
В Windows присутствует встроенная утилита для создания файлов .cab, которую можно использовать для разделения файла на части. Порядок действий:
-
Создайте текстовый файл ddf.txt с содержимым:
.Set CabinetNameTemplate=test_*.cab;makecab /f путь_к_файлу_ddf.txtextrac32 filecab путь_к_объединенному_файлуСторонние программы с функциями разделения файлов
Существуют сторонние приложения, специально предназначенные для разделения файлов на части, а также инструменты, которые имеют такую возможность как часть своего функционала. Начнем с самого распространенного варианта — архиваторы.
Архиваторы
Большинство архиваторов имеют возможность разделить создаваемый архив на несколько томов заданного размера. Если нам не требуется непосредственно архивация и нужно сэкономить место, достаточно создать архив без сжатия.
Например, в бесплатном архиваторе 7-Zip достаточно выбрать файл или файлы, нажать «Добавить», а потом настроить архив и размеры файлов, на которые он будет разбит, как на скриншоте ниже:
В WinRAR необходимые действия выполняются тем же образом, пример — на скриншоте:
В обоих случаях размер тома архива можно выбрать из списка, либо ввести вручную в соответствии с вашими потребностями. При использовании этого метода рекомендую использовать формат ZIP, как самый поддерживаемый.
Получить исходный файл можно просто положив все файлы архива в одно расположения и распаковав архив любым архиватором.
Total Commander
Известный многим архиватор Total Commander имеет опцию разбивки и сбора файлов в меню «Файл».
Достаточно выбрать файл на компьютере и использовать указанный пункт меню для разбивки файла с заданным размером частей.
В дальнейшем возможна сборка файла с помощью того же Total Commander.
Специальные утилиты для разбивки файлов
Также в Интернете вы можете найти множество утилит, которые специально предназначены для разделения файлов и их повторной сборки.
KFK File Splitter
Бесплатная утилита KFK имеет интерфейс на русском языке, достаточно понятный, чтобы объяснять, как именно им пользоваться не потребовалось, все действия для использования разбивки и обратной сборки очевидны:
FFSJ (File Splitter & Joiner)
FFSJ — программа, очень похожая на первую в списке, но без русского языка интерфейса. Выглядит как на изображении ниже:
В программе представлены две основные вкладки — для разделения и объединения файлов, а также третья — для просмотра контрольных сумм файлов.
GSplit
GSplit — одна из самых популярных программ для разделения файлов с хорошим набором дополнительных функций, но, к сожалению, без русского языка интерфейса.
Порядок простого использования GSplit:
- Выбираем исходный файл или несколько файлов в пункте «Original File».
- Задаем место сохранения разделенного файла в пункте «Destination Folder»
- Задаем размеры частей и тип частей в разделе Pieces — Type and Size.
- Запускаем разделение кнопкой Split.
В дальнейшем, когда потребуется, можно будет использовать кнопку Unite для объединения частей файлов.
Если требуется более простой подход и вариант настройки — используйте кнопку «Express» в меню программы. Также в инструменте вы найдете возможность создания «самообъединеняющихся» частей файлов: раздел Self-Uniting.
File Splitter (утилита командной строки)
Пример использования утилиты:
fsplit -split 1024 kb c:\file.txtДля объединения используем команду copy с параметром /a для текстовых и /b для произвольных двоичных файлов, пример:
copy /A test1.txt+test2.txt file.txtРазделение PDF, MP3 и других медиа файлов
Для разделения PDF файлов на части или страницы:
- Официальный инструмент разделения PDF файлов от Adobe — https://www.adobe.com/acrobat/online/split-pdf.html
- Неофициальный онлайн-сервис, но на русском: https://pdf.io/ru/split/
- И множество других.
Для разделения MP3:
- Сервис разделения аудио-файлов от veed.io
- Aspose Audio Splitter https://products.aspose.app/audio/ru/splitter/mp3
- И другие — в Интернете подобных онлайн-сервисов предостаточно.
Надеюсь, есть читатели, для которых информация окажется востребованной. Если остаются вопросы или, возможно, есть дополнения к статье, жду вашего комментария.
А вдруг и это будет интересно:
- Лучшие бесплатные программы для Windows
- В манифесте указана неизвестная структура в Microsoft Store — варианты решения
- Как добавить комментарии, теги и рейтинги к папке Windows
- Не удается войти в учетную запись Windows — как исправить?
- Некоторые параметры задает системный администратор в параметрах электропитания — как исправить?
- Как удалить Галерею в Windows 11
- Windows 11
- Windows 10
- Android
- Загрузочная флешка
- Лечение вирусов
- Восстановление данных
- Установка с флешки
- Настройка роутера
- Всё про Windows
- В контакте
- Одноклассники
- Живые обои на рабочий стол Windows 11 и Windows 10
- Лучшие бесплатные программы на каждый день
- Как скачать Windows 10 64-бит и 32-бит оригинальный ISO
- Как смотреть ТВ онлайн бесплатно
- Бесплатные программы для восстановления данных
- Лучшие бесплатные антивирусы
- Средства удаления вредоносных программ (которых не видит ваш антивирус)
- Встроенные системные утилиты Windows 10, 8 и 7, о которых многие не знают
- Бесплатные программы удаленного управления компьютером
- Запуск Windows 10 с флешки без установки
- Лучший антивирус для Windows 10
- Бесплатные программы для ремонта флешек
- Что делать, если сильно греется и выключается ноутбук
- Программы для очистки компьютера от ненужных файлов
- Лучший браузер для Windows
- Бесплатный офис для Windows
- Запуск Android игр и программ в Windows (Эмуляторы Android)
- Что делать, если компьютер не видит флешку
- Управление Android с компьютера
- В манифесте указана неизвестная структура в Microsoft Store — варианты решения
- Как добавить комментарии, теги и рейтинги к папке Windows
- Не удается войти в учетную запись Windows — как исправить?
- Некоторые параметры задает системный администратор в параметрах электропитания — как исправить?
- Как удалить Галерею в Windows 11
- Диск разработки в Windows 11
- DISM Ошибка 50 — причины и варианты решения
- PhoneExperienceHost.exe — что это и как отключить?
- Как убрать страницу «Главная» в Параметрах Windows 11
- Как сделать, чтобы ноутбук не выключался при закрытии крышки в Windows 11
- HxTsr.exe — что это за процесс?
- Ноутбук не включается — варианты решения
- Пропали значки на панели задач Windows 11 — как исправить?
- Как переименовать Bluetooth устройство в Windows
- Как отключить ускорение мыши в Windows 11 и 10
- Windows
- Android
- iPhone, iPad и Mac
- Программы
- Загрузочная флешка
- Лечение вирусов
- Восстановление данных
- Ноутбуки
- Wi-Fi и настройка роутера
- Интернет и браузеры
- Для начинающих
- Безопасность
- Ремонт компьютеров
- Windows
- Android
- iPhone, iPad и Mac
- Программы
- Загрузочная флешка
- Лечение вирусов
- Восстановление данных
- Ноутбуки
- Wi-Fi и настройка роутера
- Интернет и браузеры
- Для начинающих
- Безопасность
- Ремонт компьютеров
Как разделить текстовый файл на части с равным количеством строк?
Доброго времени суток.
Имеется текстовый файл, количество строк в исходном тексте неизвестно, может пятьдесят, а может тысыча.
Нужно разбить его на несколько частей, так, чтобы количество строк в выходных файлах было одинаково (ну ± одна строка). Количество частей задается в самом батнике.
Поскольку я плохо разбираюсь в CMD, навалял такую белиберду на пять частей:
spoiler
:movech for %%I in (list.txt) do if %%~zI==0 (goto exit) @echo off setlocal enabledelayedexpansion set file=list.txt set first=1 set second=1 set out=V_Obrabotku1.txt set counter=0 >"%out%" for /f "usebackq tokens=*" %%A IN ("%file%") DO ( set /a counter=!counter!+1 if !counter! GEQ %first% ( if !counter! LEQ %second% ( echo.%%A>>"%out%" ) ) ) set n=1 set File_Src=list.txt set file_Dest=textfile_out.txt more +%n% < "%File_Src%" >"%file_Dest%" move /y textfile_out.txt list.txt ::V_Obrabotku2 set file=list.txt set first=1 set second=1 set out=V_Obrabotku2.txt set counter=0 >"%out%" for /f "usebackq tokens=*" %%A IN ("%file%") DO ( set /a counter=!counter!+1 if !counter! GEQ %first% ( if !counter! LEQ %second% ( echo.%%A>>"%out%" ) ) ) set n=1 set File_Src=list.txt set file_Dest=textfile_out.txt more +%n% < "%File_Src%" >"%file_Dest%" move /y textfile_out.txt list.txt ::V_Obrabotku3 set file=list.txt set first=1 set second=1 set out=V_Obrabotku3.txt set counter=0 >"%out%" for /f "usebackq tokens=*" %%A IN ("%file%") DO ( set /a counter=!counter!+1 if !counter! GEQ %first% ( if !counter! LEQ %second% ( echo.%%A>>"%out%" ) ) ) set n=1 set File_Src=list.txt set file_Dest=textfile_out.txt more +%n% < "%File_Src%" >"%file_Dest%" move /y textfile_out.txt list.txt ::V_Obrabotku4 set file=list.txt set first=1 set second=1 set out=V_Obrabotku4.txt set counter=0 >"%out%" for /f "usebackq tokens=*" %%A IN ("%file%") DO ( set /a counter=!counter!+1 if !counter! GEQ %first% ( if !counter! LEQ %second% ( echo.%%A>>"%out%" ) ) ) set n=1 set File_Src=list.txt set file_Dest=textfile_out.txt more +%n% < "%File_Src%" >"%file_Dest%" move /y textfile_out.txt list.txt ::V_Obrabotku5 set file=list.txt set first=1 set second=1 set out=V_Obrabotku5.txt set counter=0 >"%out%" for /f "usebackq tokens=*" %%A IN ("%file%") DO ( set /a counter=!counter!+1 if !counter! GEQ %first% ( if !counter! LEQ %second% ( echo.%%A>>"%out%" ) ) ) set n=1 set File_Src=list.txt set file_Dest=textfile_out.txt more +%n% < "%File_Src%" >"%file_Dest%" move /y textfile_out.txt list.txt Goto movech :exit
Скрипт работает, но уж больно громоздкий, да и тысячу строк довольно долго обрабатывает.
Подскажите, пожалуйста, более изящное решение. Заранее спасибо.
- Вопрос задан более трёх лет назад
- 14896 просмотров
4 комментария
Средний 4 комментария
Разделить файл на части
Программа для онлайн деления любых файлов (Splitter), не требующая установки и не имеющая ограничение по размеру файла. Для разделения файла , просто задайте необходимое количество частей на которое нужно разделить. Затем нажмите «Разделить файл». После деления в нижней части интерфейса, появятся ссылки для сохранения, частей файла. Эта программа может работать офлайн, так как загрузки в облако не происходит. Для деления фалов размером в несколько гигабайт потребуются доли секунды. После этого вам может понадобится посмотреть файл большого размера.







