เปรียบเทียบข้อความ (Diff)

เครื่องมือเปรียบเทียบข้อความออนไลน์ฟรี เทียบข้อความสองชุดทีละบรรทัดในเบราว์เซอร์ของคุณ เห็นได้ชัดว่ามีอะไรเพิ่ม ลบ หรือแก้ไข และคัดลอกผลลัพธ์เป็นแพตช์รูปแบบรวม

เครื่องมือเปรียบเทียบข้อความทำอะไร


เครื่องมือเปรียบเทียบข้อความจะจับข้อความเดียวกันสองรุ่นมาเรียงให้ตรงกัน แล้วทำเครื่องหมายว่าอะไรเปลี่ยนไประหว่างสองรุ่นนั้น บรรทัดที่มีอยู่ในทั้งสองรุ่นจะคงไว้อย่างเดิม บรรทัดที่มีเฉพาะในรุ่นแรกจะถูกทำเครื่องหมายว่าลบ และบรรทัดที่มีเฉพาะในรุ่นที่สองจะถูกทำเครื่องหมายว่าเพิ่ม ผลที่ได้คือรายการการเปลี่ยนแปลงสั้น ๆ แทนที่จะเป็นไฟล์ยาวสองไฟล์ที่คุณต้องนั่งอ่านเทียบกันเอง

เมื่อไรที่คุณต้องใช้


ทุกครั้งที่ของสองอย่างควรเหมือนกันแต่อย่างหนึ่งไม่เหมือน เช่น ไฟล์ตั้งค่าที่ใช้ได้บนเซิร์ฟเวอร์หนึ่งแต่พังบนอีกเครื่อง ข้อสัญญาที่มีคนแก้โดยไม่บอก บันทึกที่เมื่อก่อนสะอาด คำแปลที่เคลื่อนห่างจากต้นฉบับ การอ่านทั้งสองรุ่นให้จบทั้งไฟล์นั้นช้าและไม่น่าเชื่อถือ เพราะสายตาจะข้ามตัวเลขที่เปลี่ยนไป แต่การเปรียบเทียบไม่ข้าม

อ่านผลลัพธ์อย่างไร


สัญลักษณ์ความหมาย
บรรทัดนี้เหมือนกันทั้งสองข้อความ และแสดงไว้เพื่อเป็นบริบทเท่านั้น
-บรรทัดนี้มีเฉพาะในข้อความเดิม
+บรรทัดนี้มีเฉพาะในข้อความที่แก้ไข
@@เริ่มกลุ่มการเปลี่ยนแปลง และบอกว่ากลุ่มนั้นครอบคลุมบรรทัดใดในแต่ละข้อความ

เหล่านี้คือสัญลักษณ์ของรูปแบบรวม (unified format) รูปแบบเดียวกับที่ diff -u, git และ patch ใช้ แพตช์ที่หน้านี้สร้างขึ้นสามารถบันทึกเป็นไฟล์แล้วนำไปใช้กับเครื่องมือเหล่านั้นได้

วิธีใช้


การเปรียบเทียบทำงานในเบราว์เซอร์ของคุณ ไม่มีสิ่งใดที่คุณวางลงไปถูกส่งไปที่ใด ซึ่งเป็นเรื่องสำคัญ เพราะไฟล์ที่คนเอามาเทียบกันมักเป็นไฟล์ที่ไม่ควรอัปโหลดนั่นเอง ได้แก่ ข้อมูลรับรองตัวตน สัญญา และข้อมูลลูกค้า

  1. วางข้อความรุ่นเดิมในช่องแรก และรุ่นที่แก้ไขในช่องที่สอง
  2. เลือกว่าจะไม่สนตัวพิมพ์เล็กใหญ่และช่องว่างหรือไม่ มีประโยชน์เมื่อสองไฟล์เขียนมาจากโปรแกรมแก้ไขต่างกัน
  3. อ่านบรรทัดที่ทำเครื่องหมายไว้ หรือคัดลอกแพตช์รูปแบบรวมไปใช้การเปลี่ยนแปลงนั้นที่อื่น

คำถามที่พบบ่อย


ข้อความของฉันถูกอัปโหลดขึ้นเซิร์ฟเวอร์ไหม
ไม่ การเปรียบเทียบเกิดขึ้นทั้งหมดในเบราว์เซอร์ของคุณด้วย JavaScript หน้านี้ไม่ส่งอะไรออกไปและไม่เก็บอะไรไว้

ฉันเพิ่มแค่ช่องว่างหนึ่งช่อง ทำไมบอกว่าบรรทัดเปลี่ยน
เพราะโดยค่าเริ่มต้นการเปรียบเทียบนั้นตรงตัวทุกอักขระ เปิด “ไม่สนช่องว่าง” แล้วบรรทัดที่ต่างกันเพียงย่อหน้าหรือระยะห่างจะถูกถือว่าเหมือนกัน โดยหน้าจอยังคงแสดงแต่ละไฟล์ตามที่มันเป็นจริง

เปรียบเทียบไฟล์แทนการวางข้อความได้ไหม
เปิดไฟล์ในโปรแกรมแก้ไขใดก็ได้ เลือกทั้งหมดแล้ววางที่นี่ หน้านี้เปรียบเทียบข้อความ ดังนั้นอะไรที่อ่านเป็นข้อความได้ก็เทียบได้ทั้งนั้น ไม่ว่าจะเป็นโค้ด CSV บันทึก JSON หรือร้อยแก้วธรรมดา

ตัวขึ้นบรรทัดใหม่ของ Windows กับ Unix เป็นปัญหาไหม
ไม่ ตัวขึ้นบรรทัด CRLF และ LF ถือเป็นการขึ้นบรรทัดเดียวกัน ไฟล์ที่บันทึกบน Windows จึงไม่ปรากฏเหมือนว่าทุกบรรทัดเปลี่ยนไป

แพตช์มีไว้ทำอะไร
มันคือรูปแบบรวมที่ diff -u สร้างขึ้น และ git กับ patch อ่านได้ บันทึกเป็นไฟล์แล้วคุณจะนำการเปลี่ยนแปลงนี้ไปใช้กับสำเนาอื่นของต้นฉบับได้อย่างตรงเป๊ะ หรือแนบไปกับใบงานให้คนอื่นเห็นว่าคุณแก้อะไรไป

Wikipedia — diff
Wikipedia — Unified format
Wikipedia — Longest common subsequence
Wikipedia — Patch (computing)
Wikipedia — File comparison