คำสั่ง Linux Diff

Kha Sang Linux Diff



ความแตกต่างมีแนวโน้มที่จะเป็นแนวคิดหรือความรู้สึกที่สามารถแยกแยะสิ่งหนึ่งออกจากอีกสิ่งหนึ่งได้ คำสั่ง 'diff' หมายถึงการเปลี่ยนแปลง โดยการวิเคราะห์เอกสารทีละบรรทัด เครื่องมือนี้แสดงให้เห็นถึงความแตกต่างระหว่างไฟล์ ซึ่งจะแจ้งให้เราทราบว่าส่วนใดในเอกสารหนึ่งฉบับที่ต้องแก้ไขเพื่อสร้างเอกสารที่คล้ายคลึงกัน ซึ่งแตกต่างจากองค์ประกอบที่แสดงร่วม cmp และ comm สิ่งสำคัญที่ต้องจำไว้คือเพื่อให้เอกสารมีความคล้ายคลึงกัน diff จะใช้สัญลักษณ์และคำสั่งพิเศษเฉพาะ คุณจะได้รับคำแนะนำเกี่ยวกับวิธีการแก้ไขเอกสารแรกเพื่อให้สอดคล้องกับเอกสารอื่น ภายในคู่มือนี้ เราจะพูดถึงการใช้คำสั่ง “diff” ใน Ubuntu 20.04 โดยใช้เทอร์มินัล Linux

เราได้สร้างไฟล์ข้อความสองไฟล์ในโฟลเดอร์การทำงานของระบบของเรา









ถึงเวลาที่จะใช้คำสั่ง 'diff' ในพื้นที่สืบค้นเพื่อแสดงความแตกต่างระหว่างเนื้อหาไฟล์ทั้งสอง เราลองใช้คำสั่ง 'diff' นี้โดยใช้ชื่อไฟล์ทั้งสองตามลำดับ เช่น ไฟล์ one.txt ก่อนแล้วตามด้วยไฟล์ two.txt การดำเนินการคำสั่ง 'diff' แสดงให้เราเห็นความแตกต่างระหว่างไฟล์ทั้งสองดังนี้:



  • หมายเลขบรรทัดตามไฟล์ข้อความแรก
  • อักขระ/สัญลักษณ์พิเศษเพื่อแจ้งให้เราทราบถึงความแตกต่าง เช่น การเปลี่ยนแปลง เพิ่ม ลบ
  • หมายเลขบรรทัดตามไฟล์ข้อความที่สอง

ในภาพประกอบแรกของเรา เราอธิบายอย่างละเอียดเกี่ยวกับสัญลักษณ์ 'a' ท่ามกลางหมายเลขบรรทัดของเอาต์พุตคำสั่ง 'diff' “a” ถูกใช้เป็นตัวย่อของ “เพิ่ม” การใช้คำสั่ง “cat” ที่มีชื่อไฟล์ทั้งสองในพื้นที่สืบค้นแยกกันจะแสดงเนื้อหาภายในไฟล์ข้อความแต่ละไฟล์ เช่น one.txt และ two.txt เรามีทั้งหมด 4 บรรทัดภายในไฟล์แรกในขณะที่ไฟล์ที่สองมี 5 บรรทัด บรรทัดที่ 1 เป็นพิเศษ





จากนั้น เราลองใช้คำสั่ง “diff” ในพื้นที่สืบค้นข้อมูลของเทอร์มินัล ตามด้วยชื่อไฟล์ – one.txt และ two.txt การดำเนินการของคำสั่งนี้จะแสดง '0a1' เป็นเอาต์พุตพร้อมกับบรรทัดที่ 1 จากไฟล์ที่สองซึ่งเป็นบรรทัดพิเศษในไฟล์ที่สอง ค่าตัวเลข “0” ใช้สำหรับบรรทัดที่ 0 หรือก่อนบรรทัดที่ 1 ของไฟล์แรก นั่นคือ one.txt สัญลักษณ์ “a” หมายถึง “เพิ่ม” สุดท้าย ค่าตัวเลข “1” หมายถึงบรรทัดแรกของไฟล์ที่สอง เอาต์พุตผสม '0d1' หมายความว่าควรเพิ่มบรรทัดที่ 1 ของไฟล์ที่สอง 'two.txt' ที่ด้านบนของไฟล์แรก 'one.txt' ก่อนที่บรรทัดแรกที่สองจะทำให้ทั้งสองไฟล์เหมือนกัน



ตอนนี้ เราอัปเดตทั้งสองไฟล์เพื่อดูภาพประกอบอื่น ไฟล์แรก “one.txt” มี 4 บรรทัด และไฟล์ที่สอง “two.txt” มีเพียง 3 บรรทัด ข้อแตกต่างเพียงอย่างเดียวสำหรับไฟล์เหล่านี้คือการใช้บรรทัดพิเศษในไฟล์แรก นั่นคือ บรรทัดที่ 1 = 'วันจันทร์' ซึ่งไม่อยู่ในไฟล์ที่สอง หลังจากลองใช้คำสั่ง 'diff' สำหรับไฟล์ข้อความที่อัปเดตแล้ว เราจะได้ '1d0' เป็นผลลัพธ์ และบรรทัดแรกจากไฟล์แรกจะปรากฏขึ้น ใน “1d0” 1 หมายความว่าควรลบบรรทัดแรกจากไฟล์ “one.txt” (ตามสัญลักษณ์ “d”) และ 0 หมายความว่าไฟล์ที่สองไม่ได้รับการอัพเดต ในท้ายที่สุด บรรทัดที่ 1 จากไฟล์แรก “one.txt” จะแสดงขึ้นเพื่อความแตกต่างที่ชัดเจน

ในทำนองเดียวกัน คำสั่ง “diff” สามารถแสดงความแตกต่างระหว่างบรรทัดของสองไฟล์ ดังนั้นเราจึงอัปเดตไฟล์ข้อความทั้งสองอีกครั้ง คราวนี้ ไฟล์แรกมี 5 บรรทัด ในขณะที่ไฟล์ที่สองมีเพียง 4 ข้อแตกต่างเพียงอย่างเดียวคือการใช้บรรทัดพิเศษใน one.txt ซึ่งเป็นบรรทัดที่ 3 คำสั่ง diff ที่ใช้กับทั้งสองไฟล์ในเทอร์มินัลจะแสดงข้อความ เอาต์พุต '3d2' พร้อมกับบรรทัดที่ 3 จากไฟล์แรก 'one.txt' ผลลัพธ์นี้แสดงว่าควรลบบรรทัดที่ 3 จากไฟล์แรก “one.txt” เพื่อให้เราสามารถซิงค์ไฟล์ทั้งสองที่บรรทัดที่ 2 ของไฟล์ที่สอง บรรทัดต่างๆ '3' จะแสดงขึ้นเพื่อให้เราเข้าใจถึงความแตกต่างได้อย่างชัดเจน

มาดูผลลัพธ์ที่ชัดเจนและลึกซึ้งยิ่งขึ้นกัน เอาต์พุต 1,5c1,2 จากรูปภาพต่อไปนี้แสดงให้เห็นว่าบรรทัดที่ 1 ถึง 5 ของไฟล์แรก (one.txt) ควรเปลี่ยนด้วยบรรทัดที่ 1 ถึง 2 ของไฟล์ที่สอง (two.txt) หมายความว่า 5 บรรทัดแรก (1 ถึง 5) ของไฟล์ one.txt ควรเปลี่ยนและแทนที่ด้วยสองบรรทัดแรก (1, 2) ของไฟล์ที่สอง “two.txt” เพื่อให้เหมือนกัน ในท้ายที่สุดจะแสดงทั้ง 5 บรรทัดจากไฟล์แรก ซึ่งควรแทนที่ด้วย 2 บรรทัดที่แสดงของไฟล์ที่สอง นี่คือวิธีที่สัญลักษณ์ 'c' บอกความแตกต่างระหว่างสองไฟล์ - ไม่มีบรรทัดใดเหมือนกันในทั้งสองไฟล์

คำสั่ง 'diff' ช่วยให้คุณได้รับผลลัพธ์ในรูปแบบบริบท ลองนึกภาพว่าคุณมีไฟล์สองไฟล์เดียวกันกับข้อมูลต่อไปนี้ในไฟล์เหล่านี้ บริบทรอบผลลัพธ์คือการแสดงความแตกต่างหลักระหว่างไฟล์อย่างง่ายทั้งหมดที่แสดงในภาพต่อไปนี้ ตอนนี้ เรามี 5 บรรทัดในไฟล์แรก 'one.txt' และ 4 บรรทัดในไฟล์ที่สอง 'two.txt'

เพื่อให้ได้ผลลัพธ์ตามบริบทของคำสั่ง 'diff' เราจำเป็นต้องใช้ตัวเลือก '-c' ภายในคำสั่ง 'diff' การใช้ไฟล์ที่อัปเดตก่อนหน้านี้ในคำสั่ง 'diff' นี้ เราจะได้ผลลัพธ์ต่อไปนี้ – วันที่ วัน พร้อมกับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างข้อความภายในไฟล์ 5 บรรทัดจากไฟล์ one.txt จะปรากฏขึ้น โดยเฉพาะอย่างยิ่ง บรรทัดที่สามจะถูกเน้นโดยใช้อักขระ '-' เพื่อเพิ่มลงในไฟล์อื่น

บทสรุป

เราพยายามอธิบายทุกอย่างสั้น ๆ เกี่ยวกับคำสั่ง 'diff' สำหรับสิ่งนี้ เราอัปเดตไฟล์ข้อความทุกครั้งและได้รับเอาต์พุตที่อัปเดตสำหรับการเพิ่ม ลบ และเปลี่ยนแปลงข้อมูลในไฟล์ บทนำอธิบายวัตถุประสงค์ของการใช้คำสั่ง “diff” ใน Linux และวิธีใช้คำสั่งสำหรับ Linux