Text Compare
Paste two versions of a text to see every added, removed and changed line, with the changed words highlighted.
Nothing you paste is stored - both texts are compared and returned in the same request.
Paste two versions of a text to see every added, removed and changed line, with the changed words highlighted.
Nothing you paste is stored - both texts are compared and returned in the same request.
A contract came back with edits nobody flagged. A config file works on one server and not the other. Paste both versions here and see exactly what changed, line by line, with the changed words picked out.
Paste the version you sent on the left and the version that came back on the right. Every changed clause shows up as a changed line, with the edited words highlighted, so a payment term moved from 30 to 45 days or a deleted liability cap is easy to spot. Keep one clause per line for the sharpest result, and turn on ignore spaces if the other side only changed spacing or indentation, so only wording changes are flagged.
The texts are compared line by line first, so it helps to keep one clause, setting or record per line. Lines that were edited rather than added or removed are paired, and the words inside them are compared again to highlight the exact change. Word highlighting applies when the two versions of a line are together up to 1,000 characters, for up to 50,000 characters of edited lines per comparison; longer lines are marked as a whole. Each side can be up to 200,000 characters and 5,000 lines.
Ignore extra spaces turns every run of spaces and tabs into a single space and trims both ends of each line, so a line with a tab or trailing spaces matches the same words typed with single spaces. It does not delete spaces altogether: "ab" and "a b" still differ. A blank line, or a line break after the last line of only one text, still counts as an added line. Ignore case uses Unicode case folding, so "Straße" matches "STRASSE". When an option hides a difference, the line is shown as it reads in the changed text. Windows (CRLF) and Unix line breaks compare as equal; a text with old Mac line breaks (CR only) is read as one long line.
The similarity score compares whole lines, not characters: it is twice the number of matching lines divided by the total number of lines on both sides. Ten lines with one edited gives 90%, but a one-line text with one word changed gives 0%, even though most of its words are the same. For a sentence-level score, put each sentence on its own line first. Inside an edited block, changed lines are paired in order with the lines on the other side; if one side of the block has more lines, the extra lines count as added or removed.
A paragraph with no line breaks is a single line, so one edited word marks the whole line. Changed words inside it are highlighted while the two versions of the line together stay within 1,000 characters; a longer paragraph is marked as a whole. Breaking the text into sentences or clauses first gives sharper highlighting and more useful counts.
Yes. Copy each column and paste one per side; every cell becomes one line. The comparison follows row order, so it shows where the two lists drift apart and which rows were inserted or deleted. If the order does not matter, sort both lists first with Sort A to Z in the Case Converter, so only real additions and removals are marked. Turn on Ignore case and Ignore extra spaces to skip capitals and stray spaces. To check inside Excel instead: =EXACT(A2,B2) compares two cells in the same row and is case-sensitive (a plain =A2=B2 ignores case), and =COUNTIF(B:B,A2)=0 returns TRUE for a value in column A that is missing from column B. COUNTIF ignores case and reads * and ? as wildcards, so put ~ before them when they are part of the data.
Copy the text out of each document and paste it in. Formatting such as bold or fonts is not compared, only the words and lines.
Up to 200,000 characters and 5,000 lines on each side.
No. Both texts are compared and returned in the same request and never written to a database or log.
Yes, but the comparison is line by line, so minified JSON on a single line shows up as one changed line. Format both versions first with the JSON Formatter (it keeps the key order), so each key sits on its own line and only real value changes are marked. Code compares well as it is; turn on Ignore extra spaces if only the indentation changed.
In Word, open a document and choose Review > Compare > Compare Documents, then pick the original and the revised file: Word opens a third document that shows every difference as tracked changes, formatting changes included. In Google Docs, open one version and choose Tools > Compare documents, then pick the other: you get a new Doc in your Drive with the differences as suggested edits, and you need edit access to use it. Use this page when the two texts are not both Word files or both Google Docs, such as a clause in an email against the signed PDF: paste each side, the changed words are highlighted, and nothing is stored.
No. The comparison follows the order of the lines, so a line moved elsewhere shows as removed where it was and added where it now is, and it counts once in each total. Example: A, B, C against B, C, A gives 1 line removed, 1 line added and 66.7% similarity. If a moved line lands next to an edited line, the two can also be paired and shown as one changed line. To check that two lists hold the same lines whatever the order, sort both first with Sort A to Z in the Case Converter.
On Windows, fc /n old.txt new.txt in Command Prompt lists the blocks that differ with line numbers; add /c to ignore case or /w to compress spaces and tabs. On macOS and Linux, diff -u old.txt new.txt prints a unified diff; diff -i ignores case and diff -b ignores changes in the amount of white space. With Git installed, git diff --no-index old.txt new.txt works on any system, even outside a repository, and adding --word-diff marks the changed words. Use this page when the text is not in files, such as a clause from an email and one from a PDF, or when you want the changed words highlighted side by side without a terminal.