Remove blank lines, online
Paste any text, get the blank lines stripped out — including the "looks empty but has spaces" ones. Unlike the home-page dedupe, this tool keeps every non-blank row intact — nothing else is touched.
Or press Ctrl+Enter
When to use this tool
guideLogs and CSV exports often arrive with random blank rows between data. Strip them in one paste so the next tool downstream sees a tidy block.
Chat models love padding output with empty lines for "readability". Paste, strip, and you have clean rows ready for a spreadsheet or downstream parser.
Exports from CRM, Sheets or Mailchimp often include trailing empties. Clean them up before re-importing to avoid validation errors.
Copying a non-contiguous range from a spreadsheet pastes blank rows where the gaps were. Drop them here, get a continuous list back.
How it works
three steps- 01
Paste your text
Logs, CSV exports, AI output, scraped content — anything with blank rows mixed in.
- 02
Choose trim
Trim is on by default — leading/trailing whitespace on each remaining line gets stripped. Toggle off to preserve the formatting of every non-empty row.
- 03
Hit Run
Empty lines and whitespace-only lines vanish. Order of the remaining rows is preserved.
Under the hood
engine notes- Definition of "blank"
- Empty string OR matches /^\s*$/
- Catches tabs, regular spaces, and Unicode whitespace (NBSP, en-space, em-space, etc.). A line with only invisible Unicode whitespace is still considered blank.
- Throughput
- 100K lines cleaned in ≈100 ms on a 2024 M3 MacBook Air
- Single linear scan, one regex test per line. No allocation per dropped line.
- Threading
- Web Worker for files ≥ 2 MB or ≥ 100K lines
- Above the desktop threshold, the page stays interactive while a Worker processes the file and delivers the result as a .txt download.
Privacy & limits
what stays whereEverything runs in your browser. Nothing about the blank-line scan touches the network — the regex test happens line by line, in memory. After page load the tool works offline. 80 MB hard cap per run.
Frequently asked
answeredWhat counts as a blank line?
Two conditions: (1) the string is exactly empty, or (2) it matches the regex /^\s*$/ — meaning it contains only whitespace characters. This catches plain spaces, tabs, and invisible Unicode whitespace like NBSP (U+00A0), en-space, em-space, and zero-width space.
Does it modify the non-empty lines?
Only if the trim toggle is on (it is, by default). With trim off, every non-blank line is preserved exactly as-is — leading/trailing spaces stay. The tool only changes the lines it removes, not the lines it keeps.
How is this different from `grep -v "^$"`?
`grep -v "^$"` catches only truly empty lines, not whitespace-only ones — a line containing a single space passes through `grep -v "^$"` but is removed by this tool. Closer to `grep -Ev "^\s*$"` if you want a shell one-liner equivalent.
Is my text uploaded anywhere?
No. All processing happens in your browser tab. Once the page is loaded, the blank-line scan is local — there is no upload step, and the telemetry layer cannot see your input. The page works offline after loading.