Toolvore

Compare Two Lists

Find shared and unique list items with explicit matching options and local text downloads.

This tool runs entirely in your browser. Your data is never uploaded, never stored, and never leaves your device.

Compare membership in two text lists and download common, missing and combined unique items without sorting or uploading the originals.

How to use it

  1. 1Paste or load two UTF-8 lists, with one item per line.
  2. 2Choose exact matching or explicit whitespace, case and Unicode options.
  3. 3Compare, review duplicate counts and download any complete result.

Example

Input
A: 001, 002, 002, 003 · B: 002, 004 (one per line)
Output
A only: 001, 003 · common: 002 · B only: 004

Exact matching; duplicate items count once.

What happens to your data

List contents are processed in your browser and are not uploaded or stored. Downloads stay on your device until you share them.

Last updated October 2026

Compare two lists to find the items they share, the items missing from either side and one combined unique list. Paste one item per line or open two UTF-8 text files. The four results are available together, each with a separate download, so reconciling a product list does not require four different operations.

This is a set comparison, not a document diff. Moving an item to a different line does not make it different, and repeated occurrences count once. Use it for checking identifiers across exports, comparing deployment allowlists or reconciling two sets of filenames. For changes inside sentences or the order of paragraphs, use Text Diff instead; for keyed table records, use CSV Compare.

How it works

The comparison starts with exact text. Leading zeros remain significant: 001 and 1 are different items. Capitalisation, surrounding spaces and Unicode composition are also distinct unless you enable the corresponding matching option. Empty items are ignored by default, but you can retain them when they matter. A final newline terminates the last item and does not create an additional blank item. LF, CRLF and CR line endings are accepted.

Each list is indexed in first-seen order. Only in A and the common result retain the first original spelling from A; Only in B retains the first original spelling from B. The union starts with A's distinct items and then adds B-only items. Matching options affect comparison keys, not the text you download. For example, with case-insensitive matching, Apple and apple match, but the common result retains Apple if that was A's first spelling.

The results include duplicate and ignored-item counts to explain why output totals may be smaller than input line counts. Each preview shows up to 100 items; downloads contain the complete selected result as UTF-8 text with LF endings. An empty result downloads as an empty file. A retained empty item downloads as a blank line, although its preview is labelled for visibility.

Processing is local and starts only when you ask to compare. Inputs are limited to 1 MiB and 20,000 lines per list to keep memory and rendering bounded. Editing either list or any matching option removes the old results. Files are decoded as strict UTF-8; invalid encoded bytes are not silently replaced. Nothing from your lists is added to a page URL, uploaded or saved in browser storage.

Worked example: Reconcile identifiers without losing leading zeros

Input
List A: 001, 002, 002, 003 (one per line) List B: 002, 004 (one per line)
Result
Only in A: 001, 003 In both: 002 Only in B: 004 Combined: 001, 002, 003, 004 Duplicates in A: 1

Exact matching, empty items ignored. The downloads contain one item per line, not comma-separated values.

Common use cases

  • Find product IDs present in one export but missing from another.
  • Check two permission or deployment lists without sorting the originals.
  • Create a combined unique list while keeping the first source's ordering.
  • Separate shared filenames from files found in only one directory listing.

Frequently asked questions

How is list comparison different from text diff?+

This tool compares membership, not positions. Reordering an item does not change the sets. Text Diff is better for edited sentences, insertions and deletions in a document; CSV Compare is better for complete records matched by keys.

Do duplicate items count more than once?+

No. Each matching key appears once in each result. Duplicate counts are reported separately. This is not a multiset or quantity reconciliation: two occurrences in A and one in B still produce one common item.

What does Ignore case do?+

It uses JavaScript's Unicode lowercase conversion for comparison, without changing the output. It is not locale-specific collation or fuzzy matching: for example, German ß is not automatically treated as ss.

Why do two visually identical items differ?+

Spaces, different Unicode composition and look-alike characters may be different text. Trim removes surrounding whitespace. NFC normalization can match composed and decomposed equivalents, but does not merge visually similar Latin and Cyrillic characters.

Can I compare private emails or customer IDs?+

The comparison runs in your browser and does not upload the list contents. You remain responsible for the files you download and share. This tool does not validate email addresses or prove that an identifier belongs to a real person.

Why are blank lines or final newlines handled differently?+

A final line ending closes the preceding record. A genuinely empty record between separators is a blank item. With Ignore empty items enabled, blank keys are skipped; with it disabled, an empty key can appear once in a set.