UltKit

مقایسه متن

متن اصلی را در سمت چپ و نسخهٔ جدید را در سمت راست بچسبانید. خطوط حذف‌شده قرمز و خطوط افزوده سبز می‌شوند و در خطی که ویرایش شده، واژه‌هایی که واقعاً تغییر کرده‌اند برجسته می‌شوند؛ به این ترتیب تغییر یک واژه در یک پاراگراف طولانی به‌آسانی دیده می‌شود.

۰ نویسه · ۰ کلمه · ۰ خط

۰ نویسه · ۰ کلمه · ۰ خط

برای دیدن تفاوت‌ها، در هر دو کادر متن بچسبانید.

۰ نویسه · ۰ کلمه · ۰ خط

خطوط قرمز (−) فقط در متن اصلی هستند، خطوط سبز (+) فقط در متن تغییرکرده؛ کلمات پررنگ نشان‌دهنده تفاوت‌ها هستند. کاملاً در همین زبانه مرورگر اجرا می‌شود. متن شما هرگز بارگذاری یا ذخیره نمی‌شود.

چه کار می‌کند

مقایسه متن دو متن را خط‌به‌خط با الگوریتم طولانی‌ترین زیردنباله مشترک مقایسه می‌کند، خطوط حذف‌شده را قرمز و خطوط افزوده‌شده را سبز نشان می‌دهد و کلمات دقیقاً تغییرکرده را درون خط ویرایش‌شده برجسته می‌کند.

قبل
the quick brown fox
→ the quick red fox
بعد
- the quick brown fox
+ the quick red fox

مقایسه چگونه انجام می‌شود

این ابزار هر دو متن را به خط‌ها تقسیم می‌کند و طولانی‌ترین زیردنبالهٔ مشترک آن‌ها را پیدا می‌کند؛ یعنی بزرگ‌ترین مجموعه از خط‌هایی که در هر دو متن و با همان ترتیب آمده‌اند. این خط‌ها بدون تغییر نمایش داده می‌شوند؛ هر خط دیگرِ متن اصلی حذف‌شده و هر خط دیگرِ متن جدید افزوده‌شده به حساب می‌آید. این همان ایده‌ای است که پشت برنامهٔ کلاسیک diff در یونیکس قرار دارد، که هانت و مک‌ایلروی در سال 1976 آن را شرح دادند، و پشت نمای تغییرات در سامانه‌های کنترل نسخه.

وقتی چند خط حذف‌شده درست پیش از چند خط افزوده‌شده قرار می‌گیرند، معمولاً همان خط‌ها ویرایش شده‌اند. ابزار این خط‌ها را جفت می‌کند و درون هر جفت یک مقایسهٔ دوم در سطح کلمه انجام می‌دهد؛ بنابراین به‌جای خواندن دوبارهٔ هر دو خط، می‌بینید که «سه‌شنبه» به «چهارشنبه» تبدیل شده است. شمارهٔ خط هر دو نسخه در سمت چپ نمایش داده می‌شود تا هر تغییر را در فایل‌های خودتان پیدا کنید.

نادیده گرفتن تفاوت‌های جزئی: حروف بزرگ و کوچک و فاصله‌ها

دو متن ممکن است در چیزهایی تفاوت داشته باشند که برای شما مهم نیست: خطی که با تب به‌جای فاصله تورفتگی گرفته، فاصله‌های انتهای خط که ویرایشگر باقی گذاشته، یا عنوانی که از حروف بزرگ به کوچک تغییر کرده است. گزینهٔ «نادیده گرفتن تفاوت فاصله‌ها» هر دنبالهٔ فاصله و تب را یک فاصله حساب می‌کند و فاصله‌های ابتدا و انتهای خط‌ها را نادیده می‌گیرد؛ گزینهٔ «نادیده گرفتن بزرگی و کوچکی حروف» خط‌ها را بدون توجه به حالت حروف مقایسه می‌کند. خروجی هایلایت‌شده همچنان متن جدید را همان‌طور که نوشته شده نشان می‌دهد.

در غیر این موارد مقایسه دقیق است: آپوستروف خمیده و راست دو نویسهٔ متفاوت‌اند و خط تیره و خط تیرهٔ en هم همین‌طور. اگر خطی علامت خورده اما یکسان به نظر می‌رسد، معمولاً علت یک نشانهٔ نگارشی تایپوگرافیک یا فاصلهٔ ناشکن است.

کاربردهای رایج

نویسنده‌ها پیش‌نویس‌های برگشتی از ویراستار را مقایسه می‌کنند؛ وکلا و خریداران بررسی می‌کنند کدام بندها در نسخهٔ جدید قرارداد جابه‌جا شده‌اند؛ برنامه‌نویس‌ها فایل‌های پیکربندی یا خروجی لاگ دو اجرا را مقایسه می‌کنند؛ دانشجوها می‌سنجند که بازنویسی واقعاً چه چیزی را عوض کرده است. نتیجه را می‌توان به‌صورت متن ساده و به سبک unified diff کپی یا دانلود کرد، با علامت منفی پیش از خط‌های حذف‌شده و علامت مثبت پیش از خط‌های افزوده‌شده. برای کارهای پاک‌سازی دیگر، بقیهٔ ابزارهای متن هم به همین شکل و کاملاً در مرورگر شما کار می‌کنند.

پرسش‌های متداول

آیا متنی که مقایسه می‌کنم جایی بارگذاری می‌شود؟
خیر. هر دو متن در همین زبانهٔ مرورگر می‌مانند و مقایسه با جاوااسکریپت روی دستگاه شما انجام می‌شود؛ پس می‌توانید پیش‌نویس‌ها و قراردادهای محرمانه را با خیال راحت مقایسه کنید.
چرا پاراگرافی که جابه‌جا شده به‌صورت حذف‌شده و افزوده نمایش داده می‌شود؟
diff مبتنی بر خط فقط خط‌هایی را نگه می‌دارد که ترتیب نسبی‌شان ثابت مانده باشد. وقتی یک بلوک جابه‌جا می‌شود، الگوریتم یک موقعیت را حفظ می‌کند و موقعیت دیگر را به‌صورت یک حذف به‌علاوهٔ یک افزودن گزارش می‌دهد، دقیقاً مثل git diff.
متن‌ها حداکثر چه حجمی می‌توانند داشته باشند؟
چند هزار خط در هر طرف بی‌درنگ مقایسه می‌شود. خط‌های یکسان ابتدا و انتها پیش از مقایسهٔ اصلی کنار گذاشته می‌شوند؛ اگر بخش میانی باقی‌مانده بسیار بزرگ باشد، ابزار به‌جای قفل کردن زبانه از شما می‌خواهد متن را تقسیم کنید.
آیا می‌توانم فایل‌های Word یا PDF را مستقیماً مقایسه کنم؟
متن آن‌ها را جای‌گذاری کنید. کپی از Word پاراگراف‌ها را به‌صورت خط نگه می‌دارد؛ متنی که از PDF کپی شده اغلب شکست خط‌های اجباری دارد که می‌توانید پیش از آن با ابزار حذف شکست خط پاکشان کنید.
علامت‌های منفی و مثبت در فایل دانلودشده چه معنایی دارند؟
خطی که با منفی شروع می‌شود فقط در متن اصلی هست، خطی که با مثبت شروع می‌شود فقط در متن تغییریافته هست، و خط‌هایی که با دو فاصله شروع می‌شوند بدون تغییرند.