วิธีเปรียบเทียบไฟล์ข้อความสองไฟล์ที่ใช้ Linux

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

คุณไม่จำเป็นต้องติดตั้งซอฟต์แวร์พิเศษเพื่อเปรียบเทียบไฟล์โดยใช้ Linux แต่คุณจำเป็นต้องรู้ วิธีเปิดหน้าต่างเทอร์มินัล

เป็นคู่มือที่เชื่อมโยงแสดงให้เห็นว่ามีหลายวิธีในการเปิดหน้าต่างเทอร์มินัลโดยใช้ Linux ที่ง่ายที่สุดคือการกดปุ่ม CTRL, ALT และ T ในเวลาเดียวกัน

การสร้างไฟล์เพื่อเปรียบเทียบ

เพื่อที่จะปฏิบัติตามพร้อมกับคู่มือนี้สร้างไฟล์ที่เรียกว่า "file1" และป้อนข้อความต่อไปนี้:

10 ขวดสีเขียวยืนอยู่บนผนัง

10 ขวดสีเขียวยืนอยู่บนผนัง

ถ้าขวดสีเขียวหนึ่งใบบังเอิญต้องตก

จะมีขวดเขียว 9 ใบวางอยู่บนผนัง

คุณสามารถสร้างไฟล์โดยทำตามคำแนะนำต่อไปนี้:

  1. เปิดไฟล์โดยพิมพ์คำสั่งต่อไปนี้: nano file1
  2. พิมพ์ข้อความลงใน ตัวแก้ไข nano
  3. กด CTRL และ O เพื่อบันทึกไฟล์
  4. กด CTRL และ X เพื่อออกจากไฟล์

ตอนนี้ให้สร้างไฟล์อื่นที่เรียกว่า "file2" แล้วป้อนข้อความต่อไปนี้:

10 ขวดสีเขียวยืนอยู่บนผนัง

ถ้าขวดสีเขียว 1 บังเอิญต้องตก

จะมีขวดสีเขียว 9 ใบยืนอยู่บนผนัง

คุณสามารถสร้างไฟล์โดยทำตามคำแนะนำต่อไปนี้:

  1. เปิดไฟล์โดยการพิมพ์คำสั่งต่อไปนี้: nano file2
  2. พิมพ์ข้อความลงใน ตัวแก้ไข nano
  3. กด CTRL และ O เพื่อบันทึกไฟล์
  4. กด CTRL และ X เพื่อออกจากไฟล์

วิธีการเปรียบเทียบสองไฟล์โดยใช้ Linux

คำสั่งที่ใช้ในลินุกซ์เพื่อแสดงความแตกต่างระหว่าง 2 ไฟล์เรียกว่า diff command

รูปแบบที่ง่ายที่สุดของคำสั่ง diff จะเป็นดังนี้:

diff file1 file2

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

2,4c2,3

<10 ขวดสีเขียวยืนอยู่บนผนัง

<ถ้าขวดสีเขียวหนึ่งใบบังเอิญตกลงไป

<จะมีขวดสีเขียวยืนอยู่ที่ผนัง 9 ขวด

...

> ถ้าขวดสีเขียว 1 ใบบังเอิญตกลงไป

> ต้องมีขวดสีเขียว 9 ใบยืนอยู่บนผนัง

ตอนแรกผลลัพธ์อาจดูสับสน แต่เมื่อคุณเข้าใจคำศัพท์แล้วมันก็เป็นเหตุผลที่สมเหตุสมผล

การใช้สายตาของคุณเองคุณจะเห็นได้ว่าความแตกต่างระหว่าง 2 ไฟล์มีดังนี้:

ผลลัพธ์จากคำสั่ง diff แสดงให้เห็นว่าระหว่างบรรทัดที่ 2 และ 4 ของไฟล์แรกและบรรทัดที่ 2 และ 3 ของไฟล์ที่สองมีความแตกต่าง

จากนั้นจะแสดงเส้นจาก 2 ถึง 4 จากไฟล์แรกตามด้วย 2 บรรทัดที่แตกต่างกันในไฟล์ที่สอง

แสดงว่าไฟล์แตกต่างกันอย่างไร

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

diff -q file1 file2

หากไฟล์แตกต่างไปจากนี้จะแสดง:

ไฟล์ file1 และ file2 ต่างกัน

ถ้าไฟล์เหมือนกันไม่มีอะไรจะแสดงขึ้น

วิธีการแสดงข้อความหากไฟล์เหมือนกัน

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

เพื่อให้บรรลุข้อกำหนดนี้โดยใช้คำสั่ง diff คุณสามารถใช้คำสั่งต่อไปนี้:

diff -s file1 file2

ตอนนี้ถ้าแฟ้มเหมือนกันคุณจะได้รับข้อความต่อไปนี้:

ไฟล์ file1 และ file2 เหมือนกัน

วิธีการสร้างความแตกต่างเคียงข้างกัน

หากมีข้อแตกต่างกันมากนักจะทำให้เกิดความสับสนว่าความแตกต่างระหว่างไฟล์ทั้งสองมีความแตกต่างกันอย่างไร

คุณสามารถเปลี่ยนผลลัพธ์ของคำสั่ง diff เพื่อให้ผลลัพธ์แสดงเคียงข้างกัน ในการดำเนินการนี้ให้เรียกใช้คำสั่งต่อไปนี้:

diff -y file1 file2

ผลลัพธ์สำหรับไฟล์ใช้ | | สัญลักษณ์เพื่อแสดงความแตกต่างระหว่างสองบรรทัด <เพื่อแสดงเส้นที่ถูกลบออกและ> เพื่อแสดงเส้นที่ถูกผนวกไว้

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

การ จำกัด ความกว้างของคอลัมน์

เมื่อเปรียบเทียบไฟล์สองไฟล์เข้าด้วยกันจะเป็นการยากที่จะอ่านว่าไฟล์มีจำนวนคอลัมน์มากหรือไม่

หากต้องการ จำกัด จำนวนคอลัมน์ให้ใช้คำสั่งต่อไปนี้:

diff - bandwidth = 5 ไฟล์ file2

วิธีการเพิกเฉยต่อความแตกต่างของกรณีเมื่อเปรียบเทียบไฟล์

ถ้าคุณต้องการเปรียบเทียบสองไฟล์ แต่คุณไม่สนใจว่ากรณีของตัวอักษรจะเหมือนกันระหว่างสองไฟล์จากนั้นคุณสามารถใช้คำสั่งต่อไปนี้:

diff -i file1 file2

วิธีการละเว้นต่อท้ายสีขาวที่ปลายเส้น

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

diff -Z file1 file2

วิธีการละเว้นความแตกต่างของสีขาวทั้งหมดระหว่างสองแฟ้ม

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

diff -w file1 file2

วิธีการละเว้นบรรทัดว่างเมื่อเปรียบเทียบสองไฟล์

ถ้าคุณไม่สนใจว่าไฟล์หนึ่งไฟล์อาจมีเส้นเปล่าอยู่ในนั้นคุณสามารถเปรียบเทียบไฟล์โดยใช้คำสั่งต่อไปนี้:

diff -B file1 file2

สรุป

คุณสามารถหาข้อมูลเพิ่มเติมได้โดยอ่านคู่มือสำหรับคำสั่ง diff

ชาย diff

คำสั่ง diff สามารถใช้ในรูปแบบที่ง่ายที่สุดเพื่อแสดงให้เห็นถึงความแตกต่างระหว่าง 2 ไฟล์ แต่คุณสามารถใช้เพื่อสร้าง ไฟล์ diff เป็นส่วนหนึ่งของกลยุทธ์ patching ดังที่แสดงใน คู่มือ นี้ กับคำสั่ง patch patch ของ Linux

คำสั่งอื่นที่คุณสามารถใช้เพื่อเปรียบเทียบไฟล์คือ คำสั่ง cmp ดังที่แสดงในคู่มือ นี้ นี้เปรียบเทียบไบต์ไฟล์ byte