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*$/
- Throughput
- 100K lines cleaned in ≈100 ms on a 2024 M3 MacBook Air
- Threading
- Web Worker for files ≥ 2 MB or ≥ 100K lines
Catches tabs, regular spaces, and Unicode whitespace (NBSP, en-space, em-space, etc.). A line with only invisible Unicode whitespace is still considered blank.
Single linear scan, one regex test per line. No allocation per dropped line.
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.