When You Need to Compare Lists
You have two lists and need to know how they differ. Which items are in the first but not the second? What do they have in common? What's unique to each one?
Maybe you're comparing database exports to find missing records. Or checking which users from an old system haven't migrated to a new one. Or finding duplicate entries across two data sources.
Spreadsheet VLOOKUP functions work for small lists. But when you're comparing millions of lines, you need something faster. This tool uses Set-based comparison for O(n) performance even with massive files.
Four Comparison Modes
A - B (A not in B)
Find lines that exist in List A but not in List B. This shows what A has that B is missing.
- List A: [apple, banana, cherry, date]
- List B: [banana, date, elderberry]
- Result: [apple, cherry]
Use case: Find which old users haven't migrated to the new system.
B - A (B not in A)
Find lines that exist in List B but not in List A. This shows what's new in B.
- List A: [apple, banana, cherry, date]
- List B: [banana, date, elderberry]
- Result: [elderberry]
Use case: Find newly added items in an updated export.
A ∩ B (Common Lines)
Find lines that exist in both lists. The intersection of the two sets.
- List A: [apple, banana, cherry, date]
- List B: [banana, date, elderberry]
- Result: [banana, date]
Use case: Find users who exist in both systems, or duplicates across data sources.
A △ B (Symmetric Difference)
Find lines unique to either list—items that appear in A or B but not both.
- List A: [apple, banana, cherry, date]
- List B: [banana, date, elderberry]
- Result: [apple, cherry, elderberry]
Use case: Find all differences between two lists in one operation.
Practical Use Cases
Database Migration Verification
Export user IDs from old and new databases. Use A-B to find records that didn't migrate. Use intersection to verify what transferred successfully.
Email List Cleanup
Compare your active email list against a bounce list. Use A-B to get valid emails (subscribers not in bounce list). Use intersection to identify which emails actually bounced.
Inventory Reconciliation
Compare expected inventory against actual counts. Find missing items (A-B), unexpected items (B-A), or confirmed matches (intersection).
Changelog Generation
Compare before and after states. Use symmetric difference to see all changes, or A-B/B-A individually to categorize additions vs. removals.
Options Explained
- Case Sensitive: When disabled, "Apple" and "apple" are treated as the same
- Remove Duplicates: Deduplicate the final result
- Randomize Output: Shuffle result lines
- Trim Lines: Remove leading/trailing whitespace
- Skip Empty Lines: Ignore blank lines in input
Performance
The tool uses JavaScript Set objects for O(1) lookup performance. This means comparing two million-line lists takes seconds, not hours.
Files are processed in 4MB chunks to handle large inputs without browser memory issues. Everything runs locally—your data never uploads anywhere.
Workflow Integration
Combine with other tools for complete data workflows:
- Remove duplicates from each list before comparing
- Filter results to focus on specific patterns
- Split large result files for batch processing
Frequently Asked Questions
What do the comparison modes mean?
A-B finds lines in A but not in B. B-A finds lines in B but not in A. A∩B (intersection) finds lines in both lists. A△B (symmetric difference) finds lines unique to either list (combines A-B and B-A).
Is the comparison case-sensitive by default?
No, comparisons are case-insensitive by default. Enable 'Case Sensitive' to treat 'Apple' and 'apple' as different lines.
Can I compare multiple files against multiple files?
Yes. Upload multiple files to List A and multiple files to List B. All files in each list are combined before comparison.
How does it handle duplicates within a single list?
Each list is internally deduplicated before comparison using a Set data structure. The output can also be deduplicated using the Remove Duplicates option.
What's the difference between A-B and B-A?
A-B shows what A has that B doesn't (items missing from B). B-A shows what B has that A doesn't (new items in B). They're opposite perspectives of the same comparison.