คู่มือนี้จะแสดงวิธีการใช้ Linux เพื่อเปรียบเทียบไฟล์สองไฟล์และส่งออกความแตกต่างไปยังหน้าจอหรือไฟล์
คุณไม่จำเป็นต้องติดตั้งซอฟต์แวร์พิเศษเพื่อเปรียบเทียบไฟล์โดยใช้ Linux แต่คุณจำเป็นต้องรู้ วิธีเปิดหน้าต่างเทอร์มินัล
เป็นคู่มือที่เชื่อมโยงแสดงให้เห็นว่ามีหลายวิธีในการเปิดหน้าต่างเทอร์มินัลโดยใช้ Linux ที่ง่ายที่สุดคือการกดปุ่ม CTRL, ALT และ T ในเวลาเดียวกัน
การสร้างไฟล์เพื่อเปรียบเทียบ
เพื่อที่จะปฏิบัติตามพร้อมกับคู่มือนี้สร้างไฟล์ที่เรียกว่า "file1" และป้อนข้อความต่อไปนี้:
10 ขวดสีเขียวยืนอยู่บนผนัง
10 ขวดสีเขียวยืนอยู่บนผนัง
ถ้าขวดสีเขียวหนึ่งใบบังเอิญต้องตก
จะมีขวดเขียว 9 ใบวางอยู่บนผนัง
คุณสามารถสร้างไฟล์โดยทำตามคำแนะนำต่อไปนี้:
- เปิดไฟล์โดยพิมพ์คำสั่งต่อไปนี้: nano file1
- พิมพ์ข้อความลงใน ตัวแก้ไข nano
- กด CTRL และ O เพื่อบันทึกไฟล์
- กด CTRL และ X เพื่อออกจากไฟล์
ตอนนี้ให้สร้างไฟล์อื่นที่เรียกว่า "file2" แล้วป้อนข้อความต่อไปนี้:
10 ขวดสีเขียวยืนอยู่บนผนัง
ถ้าขวดสีเขียว 1 บังเอิญต้องตก
จะมีขวดสีเขียว 9 ใบยืนอยู่บนผนัง
คุณสามารถสร้างไฟล์โดยทำตามคำแนะนำต่อไปนี้:
- เปิดไฟล์โดยการพิมพ์คำสั่งต่อไปนี้: nano file2
- พิมพ์ข้อความลงใน ตัวแก้ไข nano
- กด CTRL และ O เพื่อบันทึกไฟล์
- กด CTRL และ X เพื่อออกจากไฟล์
วิธีการเปรียบเทียบสองไฟล์โดยใช้ Linux
คำสั่งที่ใช้ในลินุกซ์เพื่อแสดงความแตกต่างระหว่าง 2 ไฟล์เรียกว่า diff command
รูปแบบที่ง่ายที่สุดของคำสั่ง diff จะเป็นดังนี้:
diff file1 file2
ถ้าไฟล์เหมือนกันจะไม่มีผลลัพธ์เมื่อใช้คำสั่งนี้อย่างไรก็ตามเนื่องจากมีข้อแตกต่างคุณจะเห็นผลลัพธ์คล้ายกับข้อความต่อไปนี้:
2,4c2,3
<10 ขวดสีเขียวยืนอยู่บนผนัง
<ถ้าขวดสีเขียวหนึ่งใบบังเอิญตกลงไป
<จะมีขวดสีเขียวยืนอยู่ที่ผนัง 9 ขวด
...
> ถ้าขวดสีเขียว 1 ใบบังเอิญตกลงไป
> ต้องมีขวดสีเขียว 9 ใบยืนอยู่บนผนัง
ตอนแรกผลลัพธ์อาจดูสับสน แต่เมื่อคุณเข้าใจคำศัพท์แล้วมันก็เป็นเหตุผลที่สมเหตุสมผล
การใช้สายตาของคุณเองคุณจะเห็นได้ว่าความแตกต่างระหว่าง 2 ไฟล์มีดังนี้:
- ไฟล์ที่สองมีเพียง 3 บรรทัดเท่านั้นส่วนไฟล์แรกมี 4 ไฟล์
- ไฟล์ที่สองกล่าวว่า "ขวดสีเขียว 1 ขวด" ในบรรทัดที่สามในขณะที่ไฟล์แรกระบุว่า "ขวดสีเขียว"
- ไฟล์ที่สองกล่าวว่า "ต้องมี" แทน "จะมี" ในบรรทัดสุดท้าย
ผลลัพธ์จากคำสั่ง 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