Text file splitter
Split a large text file into multiple smaller files — by lines, by size, by parts, by character count, by delimiter, or by regex. Browser-only, no upload. Works for CSV files too.
For when one big text file needs to become many smaller ones.
You have a log file too big to email, a CSV export that won't fit through your upload limit, a database dump that needs to be chunked for a slow import. This tool slices the input into multiple smaller .txt files and bundles them into a single ZIP — no upload, no install, no command line.
Six split rules cover most cases: cut into N equal parts, by byte size (KB / MB), by lines, by characters, by a literal delimiter, or by regex. CSV files work the same way — use LINES mode to split a CSV into multiple files by row count, or BYTES mode to split by file size. The whole thing runs in your browser using a few String.slice() calls and JSZip.
Paste or drop your file
Drop a .txt, .csv, or .log file into the input box — or paste the text directly. Everything is processed in your browser, nothing uploaded.
Pick a split rule
Choose PARTS for N equal pieces, BYTES for size limits (KB / MB), LINES for a row count per file (most common for CSV), CHARS for codepoints per file, DELIM for token-based splits, or REGEX for pattern-based.
Download the ZIP
Each output file shows as a preview panel. Hit Download ZIP to grab the full bundle — file panels are previews only, the actual ZIP contains the complete content of every chunk.
What's the difference between PARTS, BYTES, LINES, and CHARS modes?
PARTS slices the input into N equal-sized chunks (you pick N). BYTES splits by file size — useful for "split into 10 MB files" workflows. LINES splits by row count — the most common mode for CSV files. CHARS splits by codepoint count, where one English letter, one Chinese character, or one emoji each count as 1.
Can I use this to split a CSV file into multiple files?
Yes. A CSV is just a text file with a delimiter, so any mode works on it. The most common pattern is LINES mode to split a CSV into multiple files by row count (e.g. 10,000 rows per file). For size-based splits like "split a 1 GB CSV into 50 MB pieces," use BYTES mode. Note: the tool does not detect or copy the header row — if you need the header in each output file, prepend it manually after download.
Do I need the command line, a Mac, or Windows? Any installation?
Nothing to install. The tool runs in any modern browser on Mac, Windows, or Linux — no command line, no csplit, no split utility, no Python script. Open the page, drop in your file, click Download ZIP.
What happens to the delimiter — is it kept in the output?
For DELIM and REGEX modes the delimiter is consumed during the split — only the parts between delimiters appear in each output file. For PARTS, BYTES, LINES, and CHARS modes there is no delimiter involved, so the text is sliced as-is.
How large a file can it split before the browser runs out of memory?
Around 50 MB of plain text splits reliably in Chrome / Firefox on a modern laptop. Above ~200 MB the ZIP-packaging step (JSZip, runs in your tab — not on a server) gets slow and can freeze the page. If that happens, refresh and split into fewer or smaller chunks per pass. The output preview is intentionally capped at 20 file panels × 5 lines each so the DOM stays light no matter how many output files you generate.
What's the maximum file size I can split?
Splitting itself is fast — the slow step is ZIP packing. Comfortable up to ~10 MB / 50k lines; a 100 MB input pauses the tab for 5–10 seconds during JSZip compression. Beyond ~500k lines the ZIP step may hang. Each output file panel previews up to 5 lines (with a "+N more" note); the actual file contents in the ZIP are always complete.