Compare lists

See what two lists share, and what only one of them has.

Your inputs stay on your deviceFREE · NO SIGN-UP
Show
Matching

Values must match character for character, including capitals and edge spaces. Each list is compared as one value per line; blank lines are ignored and a repeat inside a list is counted once. The counts above cover all three groups whichever one you are showing. Up to 200,000 characters per list.

Result

Start typing and the result appears here. No button needed.

THE LITTLE DETAILS

Compare lists, without the extra steps.

Paste two lists and see the answer immediately: how many values they share, how many only the first has, and how many only the second has. Pick the group you need and copy it. Matching can ignore capitals and stray spaces, which is usually the only thing standing between two exports of the same data.

How to use this tool

  1. 1Paste the first list into List A and the second into List B, one value per line.
  2. 2Choose whether matching is exact, and which group you want to see. The counts cover all three groups either way.
  3. 3Copy the group you need.

When Compare lists is the right tool

  • Two exports of the same mailing list are a week apart, and you need the addresses that were added since.
  • A spreadsheet of invited attendees has to be checked against the list of people who actually registered.
  • A deployment manifest and an inventory should contain the same identifiers, and you need to know which side is missing which.
  • Two colleagues each kept their own copy of a list, and the question is simply what they agree on.

Three answers, and you usually want one

Comparing two lists produces three groups, and the counts for all three are the actual answer to most questions — 812 in both, 14 only in A, 3 only in B tells you what happened between two exports at a glance. The group selector decides which of them fills the result box, because when you do need the values you almost always need one clean list to paste somewhere, not a report. All groups exists for the times you are pasting the whole comparison into a ticket.

Case and spacing are what real exports differ by

Two systems holding the same email addresses will disagree about capitals, and a spreadsheet copy will bring trailing spaces with it. Under exact matching those count as different values and the comparison is technically right and practically useless. Loose matching lowercases and trims each line before comparing, while still showing you the values as they were written in their own list. Spaces inside a value are left alone, since those are usually real.

A repeat inside one list is not a difference between them

If list A contains the same address three times, that is a fact about list A, not about the comparison. The value is compared once and appears once in whichever group it belongs to, so the groups stay usable as lists you can paste back somewhere. The number of repeats in each list is reported separately, because a list that was supposed to be unique and is not is usually worth knowing about before you act on the comparison.

GOOD TO KNOW

A few quick answers.

Capitals and whitespace at the start and end of a line. Bob@Example.com and " bob@example.com " become the same value, which is what two exports of the same data most often differ by. Spaces inside a value still count, so "Jon Smith" and "JonSmith" remain different.

They are collapsed: a value that appears three times in list A is compared once and shown once, so the groups stay usable as lists. The number of repeats in each list is reported separately, which is often worth knowing in its own right when the list came from an export.

Choose All groups. The result becomes three labelled sections — in both, only in A, only in B — each with its count, which is the form to paste into a ticket or an email. The single-group choices exist because most of the time you want one clean list to copy without labels.

Only for naming. Only in A means present in the first box and absent from the second, so swapping the lists swaps those two groups. In both is the same either way. Values keep the order they had in their own list rather than being sorted, so a group you copy is in the order you pasted it.

Yes, if you paste each column as its own list — a copied spreadsheet column arrives as one value per line, which is exactly what this expects. Comparing rows across several columns at once is a different job; join the fields you care about first, or compare one column at a time.

No. Values match as whole lines, with loose matching adding only case and edge-space tolerance. Fuzzy matching would need a similarity threshold and would produce pairs rather than groups, which is a different tool — and a wrong guess there quietly puts a value in the wrong group.

Back to all tools