Four output modes against two pasted blocks
Input is split on `#`-prefixed header lines into two blocks. The op computes three sets: only-A, only-B, common. The Output select picks which of those to emit: `tagged` (default) shows only-A and only-B together with `A\t` and `B\t` prefixes per row. `only_a`, `only_b`, `common` emit just that set without tags.
Case-insensitive comparison is the default. Toggle Case sensitive on to treat `Apple` and `apple` as distinct. Duplicates within a single list are deduped implicitly - the comparison is set-based.
For two-of-many-list comparison, use Compare three lists or Find common items. For row-by-row pairing instead of set diff, use Zip two lists.
How to use compare two lists for differences
- 1Paste List 1 under a `# List 1` header
- 2Add `# List 2` and paste the second list
- 3Pick Output: tagged (A + B with tags), only A, only B, or common
- 4Toggle Case sensitive if you need exact casing
- 5Output updates live; copy or download the result
Keyboard shortcuts
Drive ListShift without touching the mouse.
What this tool actually does
Set-based diff across two `#`-delimited blocks.
Tagged mode (default)
Output shows A-only items with `A\t` prefix, then B-only items with `B\t` prefix. Tab separator pastes into Excel as two columns. Items in both lists are omitted.
Only A / Only B modes
Emit just one side of the diff, without tags. Useful when you only care about "what is missing from List 2" (Only A) or "what was added in List 2" (Only B).
Common mode
Emits the intersection - items that appear in both lists. The inverse of Find distinct items.
Case-insensitive by default
`Apple` matches `apple`. Toggle on to make the diff exact. No trim option - whitespace differences are preserved.
Two blocks required
Status bar shows "Paste two lists separated by `# List X` headers" if fewer than two `#`-prefixed blocks are detected.
Worked example
Default tagged output: A-only items first, then B-only items. `banana` (in both) is omitted.
# List 1 apple banana cherry # List 2 banana date fig
A apple A cherry B date B fig
Settings reference
How each option shapes the output using the sample above.
| Setting | What it does | Effect on the sample |
|---|---|---|
| Output: A-only + B-only (tagged) (default) | Shows A-only items tagged `A\t`, then B-only tagged `B\t` | `A\tapple` / `A\tcherry` / `B\tdate` / `B\tfig` |
| Output: Only in A | Items present in A but not B | `apple` / `cherry` |
| Output: Only in B | Items present in B but not A | `date` / `fig` |
| Output: In both | Intersection | `banana` |
| Case sensitive: on | `Apple` ≠ `apple` | Would treat cased variants as distinct |