Line Break Tools
Remove, add, join or split line breaks — hard-wrapped paste to flowing text, columns to SQL IN lists — entirely on this device.
Press ? for shortcuts
Do it offline:$ tr -d '\n' < file.txt
How to use it
- Pick a mode tab — Remove, Join, Split or Add; a badge shows the mode your paste's shape suggests until you choose for yourself.
- Paste text or drop a .txt file — the result updates as you type, moving to a background worker past 256 KB.
- Adjust the mode's options — paragraphs and hyphens for Remove, delimiter and wrapping for Join, delimiter or column for Split and Add — and pick the output line ending.
- Check the one-line summary, then copy or download the result, or share the state as a link.
Text copied out of a PDF or an email arrives with a break at the end of every visual line. This page takes those breaks out — or puts them in: Remove flows hard-wrapped text back into paragraphs, Join folds a column into one delimited line, Split unfolds a delimited line into a list, and Add wraps long lines at a column you choose. All four modes run on this device.
How it works
Every mode begins with the same pre-pass: the input is segmented on five break tokens — CRLF, CR, LF and the Unicode separators U+2028 and U+2029 — each counting as exactly one break. A chip names mixed endings and the convention the output uses; Auto resolves to the input's dominant ending, LF on a tie.
The transforms are plain splits and joins over those segments. Wrapping measures code points and cuts only at spaces, so an emoji joined from several code points travels whole, and a word longer than the column gets its own line instead of a mid-word cut.
Examples
The moth rests with both wings
held flat, and the clear panels
show whatever sits behind them.
Collectors call the effect a
window in flight.The moth rests with both wings held flat, and the clear panels show whatever sits behind them.
Collectors call the effect a window in flight.Six hard-wrapped lines become three: the breaks inside each block turn into spaces while the blank line separating the blocks survives, so both paragraphs still read as paragraphs — the PDF-paste repair.
a
b
c'a','b','c'The SQL IN recipe, offered as a named preset: comma separator, every item wrapped in single quotes, nothing after the last item. The result drops straight into IN (...).
release notes, changelog, roadmap, docsrelease notes
changelog
roadmap
docsSplitting on the comma with trimming on removes the space that followed each one, leaving a clean tag per line — Join run in reverse.
The tank ships
with two lids
and a filter.
Rinse the gravel
before first use.The tank ships with two lids and a filter.
Rinse the gravel before first use.One paste, three break conventions: CRLF, a bare LF and an invisible U+2028. Two chips report it — “mixed CRLF and LF line endings normalized — output uses LF” and “1 Unicode line separator (U+2028/U+2029) treated as a line break” — and the explicit LF setting overrides the CRLF majority Auto would have picked.
Every example on this page is executed against the same engine that powers the tool, on every build.
Gotchas worth knowing
Hyphenated line ends can merge back together
Merge hyphenated words turns re- at a line end plus the move below it into remove; a soft hyphen (U+00AD) before a break merges under the same switch. A chip counts every merge; when the option is off the page only hints.
A trailing delimiter adds no empty item
Join never emits a separator after the final item, and Split drops the single empty field a trailing comma would create — each with a chip saying so. Interior empty lines stay real items.
Wrapping never cuts inside a word
Add and split-every-N measure the column in code points and break only at spaces. A URL or identifier longer than the column keeps a whole line to itself.
A quoted comma still splits
Split reads the delimiter as literal characters wherever it appears — quotation marks do not protect it. That grammar is CSV parsing and belongs to the CSV tools, not this page.
Joining with no separator is legal
An empty separator concatenates the lines directly, and the summary confirms the join happened with no separator — a deliberate acknowledgement, never a silent surprise.
Past 1 MB the page refuses
A refusal is never a truncation: below the cap everything transforms, above it nothing does, and your paste stays put. The tr line under the tool handles any size — though it deletes breaks outright where Remove writes a space.
Common errors
Delimiter ',' not found — nothing to split- Split by delimiter only runs when the delimiter occurs in the input; the refusal leaves your text untouched and marks the previous output stale. Look for a tab where you expected a comma.
Split delimiter is empty — nothing to split on- An empty delimiter gives Split nothing to cut on — unlike Join, where an empty separator legally concatenates. Type a character, or split by length instead.
Wrap width must be a whole number of at least 1 — got 0- Column widths must be whole numbers of at least 1 — never rounded or clamped quietly. The same rule guards Split's every-N-characters length.
FAQ
Why does text copied from a PDF break at the end of every line?
A PDF stores each printed line as its own drawn object, so the clipboard gets one break per visual row rather than per sentence. Remove turns those breaks into spaces; with paragraphs kept, blank lines still separate the paragraphs.
How do I turn a column of values into a SQL IN list?
Choose Join and apply the SQL IN preset: the column returns quoted, comma-separated, with no trailing comma. A value containing a single quote still needs SQL escaping — the String Escaper page's job.
Which output line ending should I pick?
LF is the safe default for git, Linux and macOS toolchains; CRLF suits files headed for Windows editors; CR is a legacy convention. Auto keeps whatever your input already prefers.
Keyboard shortcuts
- ⌘/Ctrl + Enter
- Re-run the active mode at any size.
- ⌘/Ctrl + S
- Download the result as .txt.
- ⌘/Ctrl + C
- Copy the whole output when no text is selected.
- ⌘/Ctrl + Shift + C
- Force-copy the whole output despite a selection.
- t
- Cycle the color theme.
- ? or ⌘/Ctrl + /
- Show the keyboard shortcut overlay.
- Esc
- Close the topmost overlay; your input stays.