Remove duplicate lines without rewriting them
Each line is one item. By default, only identical lines match, and the first original spelling and order are retained. Ignore case and trim edges affect matching only; neither option rewrites the retained line. Skip blank lines also removes lines made entirely of whitespace.
Compare two lists as sets
A − B returns A’s items that do not appear in B; B − A returns B’s unique items. Intersection keeps items found in both lists using A’s first spelling. Union keeps A’s unique items first, then appends new items from B. Every result is a set, so each matching item appears at most once. Duplicates within each source and items excluded by the comparison are counted separately.
How line endings and blank items are counted
Windows CRLF, older CR and LF line endings are split consistently. Empty input contains zero items. One final line ending terminates the preceding item; further endings represent blank items. For example, apple followed by two line endings contains apple and one blank item. Output uses LF and retains the terminator needed for an empty final item, so it survives copying and downloading.
Unicode matching and sorting limits
No NFC or NFKC normalization is applied. A precomposed é and e with a combining accent can remain different items even when they look alike. Ignore case uses Unicode lowercase, rather than full language-specific case folding; ß and ss still differ. Optional sorting follows the matching keys in Unicode code-point order, rather than dictionary or natural-number order. Each list supports 100,000 UTF-16 units. Oversized input produces an explicit error instead of being truncated.