Text Repeater, Deduplicator & Sorter

Three small list operations that are tedious by hand and awkward in a spreadsheet: repeating a string, removing duplicate lines, and sorting. Useful for building test fixtures, cleaning an exported list of email addresses, or tidying a set of keywords before analysis.

Free · runs in your browser · updated

Actions
Repeat Amount
Separator
Output Text

Text Repeater, Deduplicator & Sorter at a glance

What it does
Repeat a string any number of times, remove duplicate lines from a list, and sort lines alphabetically or by length. Handy for test data and list cleanup.
Where it runs
Entirely in your browser — no data is uploaded
Works offline
Yes, once the page has loaded
Cost
Free, with no account and no usage limit

How to use it

  1. Paste your text or list, one item per line where the operation works on lines.
  2. Choose the operation - repeat, deduplicate, or sort.
  3. Set the options, such as how many repetitions and what separates them.
  4. Copy the result.

Repeating text

Repetition is mostly used for generating test data: 500 rows to check that a table paginates, a string long enough to test a field's length validation, or a payload large enough to see whether a request limit is enforced.

It is also the fastest way to test how a layout behaves under stress - a very long unbroken string reveals whether your CSS wraps or overflows, which is a bug that reliably reaches production because nobody tests with a 200-character surname.

Removing duplicate lines

Deduplication compares whole lines, so two entries that differ only by a trailing space or by capitalisation are treated as different. That is usually not what you want with real-world data.

Before deduplicating a list of email addresses or usernames, normalise it: convert to lowercase with the case converter and trim whitespace. Otherwise Alice@example.com and alice@example.com both survive, and you send the same person two emails.

The same applies to URLs, where example.com/page and example.com/page/ are different strings pointing at the same thing.

Sorting lines

Alphabetical sorting is less obvious than it appears. A plain sort is by character code, which puts every uppercase letter before every lowercase one - so "Zebra" comes before "apple". Locale-aware sorting handles this, and also knows that "ä" belongs near "a" in German but at the end of the alphabet in Swedish.

Numbers sorted as text produce the classic wrong order: 1, 10, 100, 2, 20. If you are sorting anything numbered, either pad the numbers with leading zeros or use a natural sort.

Sorting by length is the quick way to find outliers - the truncated entry, the row where two fields ran together, the value that is obviously a placeholder.

Practical uses

  • Cleaning an exported list of subscribers, keywords or URLs before importing it somewhere else.
  • Building test fixtures at a realistic size rather than three rows.
  • Comparing two lists - concatenate them, sort, and duplicates cluster together.
  • Preparing keyword sets for research, where duplicates skew volume totals.
  • Checking a CSV column for unexpected distinct values before writing an importer.

Generating useful test data

Most software is tested with three tidy rows, which is why so many bugs appear only in production. Repetition is the quickest way to produce input that actually exercises the code.

  • Pagination. A table looks fine with ten rows and breaks at 500. Generate enough rows to cross the page boundary, and enough to reach page three, where off-by-one errors live.
  • Field length limits. Repeat a character to exactly the limit, one under, and one over. Off-by-one validation errors are extremely common and almost never caught by hand-typed test data.
  • Layout under stress. A single 200-character unbroken string reveals whether your CSS wraps or overflows. Real surnames, German compound nouns and pasted URLs all hit this.
  • Payload size limits. Repeating text until a request is rejected tells you where the actual limit is, which is often not where the documentation says.
  • Performance. An operation that feels instant on 50 items may be quadratic and take a minute on 5,000.

Cleaning a list before you use it

Lists exported from spreadsheets, CRMs and analytics tools arrive dirty in predictable ways, and the order in which you clean them matters.

  1. Trim whitespace first. Trailing spaces are invisible and defeat every subsequent comparison.
  2. Normalise case where the data is case-insensitive in reality — email addresses, tags, domain names.
  3. Then deduplicate. Doing this before the first two steps leaves duplicates that differ only by a space or a capital.
  4. Sort by length last to spot outliers: truncated entries, rows where two fields ran together, and obvious placeholder values.

Deduplicating before normalising is the single most common mistake, and it is why marketing lists so often contain the same person three times.

Frequently asked questions

It keeps the first occurrence of each line and removes later ones, so the surviving entries stay in their original relative order.

A basic sort orders by character code, which separates uppercase from lowercase. Lowercase the list first with the case converter if you want a true alphabetical order.

Tens of thousands of lines work fine. Beyond a few megabytes the textarea itself becomes the bottleneck rather than the processing.

No. Everything runs in your browser, so customer lists and internal exports are safe to paste.

Nothing you enter here leaves your browser

Text Repeater, Deduplicator & Sorter does its work in JavaScript running on your own device. The page loads once, and after that there is no upload step and no server involved — which matters here because unpublished drafts, contracts and internal documents stay on your machine.

You can verify this rather than taking our word for it: load the page, disconnect from the internet, and the tool keeps working. Our privacy policy sets out what is and is not collected, and this guide explains why the distinction matters.