Text and Tamil tools

Remove duplicate lines

Remove repeated text lines locally. Keep first or last occurrences, with optional trimmed, lowercase or canonical comparison keys while retaining original line contents.

One item per line. Paste or import a TXT list; your source stays unchanged. Up to 100,000 UTF-16 units.

For A, B, A: keeping first gives A, B; keeping last gives B, A.

Matching options

Options change what matches, never the retained line's spelling or spacing. Case comparison uses lowercase rules; ß and SS stay different. Accent matching uses canonical Unicode forms, not accent removal.

Exact line matching. Unique blank lines are kept.

Paste lines to begin. Live preview is on.

Import a local TXT file

Choose or drop one UTF-8 .txt file up to 400 KB. Undo restores your previous text.

Remove repeated lines

  1. Paste text and choose whether to keep the first or last matching occurrence.
  2. Leave options off for exact matching, or select explicit comparison rules.
  3. Process, review counts and retained lines, then copy or download.

Retained occurrences keep their original text and relative order. For A, B, A, first keeps A, B; last keeps B, A. The original input remains available as a separate TXT download. The tool does not sort or clean the retained line values.

Comparison options

Outer whitespace matching ignores only Unicode White_Space at line edges; internal whitespace and zero-width formatting characters remain significant. Canonical matching uses NFC on keys, so composed and decomposed accents can match, while the selected original line stays as entered. This is not compatibility normalization. Unicode normalization reference.

Lowercase comparison applies native whole-line locale-aware lowercase to keys. This is not full Unicode case folding: German ß and SS remain different lowercase keys. Turkish I and ı can match when Turkish is selected. Browser Unicode/locale data can vary. Combined canonical matching normalizes before and after case mapping. Matching does not make different meanings, confusable characters or visually similar scripts equivalent.

Whitespace-only line removal is separate from duplicate removal. With it off, repeated exactly empty lines can collapse to one empty record. Empty input has zero records. A final line delimiter terminates the last record and is not an extra empty record; the output preserves a terminal delimiter when at least one record remains.

Import, preview and recovery

Live preview waits 450 ms and pauses during input-method composition. You can switch it off for manual processing. Review removed lines shows every removal in ten-item pages with original line numbers and links to select the removed and kept occurrences. Blank removals are separate. The full removal report contains source text and matching rules.

TXT import validates UTF-8, removes an initial BOM and converts CRLF/CR to LF. Invalid files preserve the draft and result; edits cancel stale reads. Large pastes use one validated replacement. Import, example, large paste, Clear and Use result have one undo step. Editing text or options discards that undo; Clear keeps options.

Line endings and privacy

Input records recognize CRLF as one separator, LF, CR, U+0085 NEXT LINE, U+2028 LINE SEPARATOR and U+2029 PARAGRAPH SEPARATOR. Output record delimiters are LF. Remaining line values retain their original characters, spacing and case; original TXT preserves the current textarea value. Browsers normalize textarea CR/CRLF input to LF, so clipboard encoding cannot be recovered.

Local worker only, valid Unicode up to 100,000 UTF-16 units, ten-second timeout. Linear key trimming avoids unbounded whitespace-regex work. Cancel terminates processing; Clear removes text/result; edits/options clear stale output. No uploads, draft storage, external API, executable HTML or user-defined regex. Unpaired surrogates reject for valid UTF-8 exports. Optional copying can be blocked; use download or selection. Files and clipboard remain under your control.