Bagaimana Membandingkan Dua Fail di Linux

How Compare Two Files Linux



Sekiranya anda ingin membandingkan dua fail dan menguraikan perbezaannya, arahan dipanggil perbezaan digunakan. Panduan ini difokuskan untuk memberi anda penggunaan perbezaan perintah dengan pelbagai pilihan untuk mendapatkan perbezaan antara dua fail.

Jadi, bagaimana perbezaan arahan sebenarnya berfungsi? The perbezaan perintah membandingkan dua fail dan mengeluarkan senarai perbezaan antara kedua-dua fail. Lebih tepat lagi, ia menghasilkan senarai pengubahsuaian yang perlu dibuat pada fail pertama agar sesuai dengan fail kedua. The perbezaan arahan juga digunakan oleh pengaturcara untuk mendapatkan perbezaan antara dua fail kod sumber untuk mengembangkan patch.







Sebelum menyelami contohnya, perhatikan bahawa susunan fail sangat penting. Kerana ia perbezaan arahan memberikan output berdasarkan urutan fail.



Cara Menggunakan Perintah diff di Linux untuk Membandingkan Fail:

Sintaks bagi perbezaan arahan disebutkan di bawah:



$perbezaan [pilihan] [fail1] [fail2]

Pertama, buat dua fail. Saya membuat fail teks dengan nama test_file_1.txt dan test_file_2.txt . Fail-fail ini mengandungi kandungan dengan sedikit perbezaan:





Sekarang gunakan arahan berikut untuk mendapatkan perbezaannya:



$perbezaantest_file_1.txt test_file_2.txt

Output standard menunjukkan garis yang sesuai dengan urutan fail yang disebutkan dalam perintah. Oleh itu, mari kita decode outputnya:

Perbandingan fail dilabel, dan setiap label mempunyai nombor di kedua sisi. Formatnya adalah seperti berikut:

[Nombor baris fail 1] [Label (a, c, d)] [Nombor baris fail 2]

Terdapat tiga label:

  • ke - Tambah: Tambahkan kandungan dalam fail pertama untuk diselaraskan dengan fail kedua.
  • c - Ubah: Menunjukkan bahawa pengubahsuaian diperlukan dalam kandungan fail pertama agar sesuai dengan fail kedua.
  • d - Padam: Keluarkan kandungan dari fail pertama untuk dipadankan dengan yang kedua.

2d1 menunjukkan untuk menghapus nombor baris 2 dari fail pertama untuk memadankan fail kedua dari baris nombor 1.

Begitu juga, 4c3 bermaksud membuat perubahan pada baris keempat fail pertama untuk memadankan baris nombor 3 fail kedua kerana kedua-dua baris sedikit berbeza.

Terdapat kaedah lain untuk melihat perbezaannya, gunakan perbezaan perintah dengan -dan pilihan:

$perbezaan -dan -IN 60test_file_1.txt test_file_2.txt

Dalam output di atas, kandungan test_file_1.txt dipaparkan di sebelah kiri, sementara kandungan dari teks_file_2.txt dipaparkan di sebelah kanan. Perbezaan ditunjukkan oleh simbol:

  • | - Garis berbeza dalam fail kedua
  • > - Garis tambahan dalam fail kedua
  • <— Line has been deleted from the second file

-W menunjukkan lebar antara kandungan dua fail. Untuk mendapatkan secara berasingan dan melihat perbezaannya, gunakan yang berikut:

$perbezaan -dan -IN 60 -menyekat-garis biasatest_file_1.txt test_file_2.txt

Cara Mendapatkan Output dalam Satu Baris Menggunakan Perintah diff:

Sekiranya kaedah berlabel sukar untuk anda menyahkod, maka ada pendekatan yang lebih mudah. Menggunakan -q pilihan dengan perbezaan arahan memberi anda output dalam satu baris. Baiklah, tanpa maklumat tambahan, walaupun:

$perbezaan -qtest_file_1.txt test_file_2.txt

Sekiranya fail berbeza, maka perintah di atas akan memberikan output. Sekiranya failnya serupa, maka tidak akan ada output. Untuk menunjukkannya, saya membuat salinan test_file_1.txt menggunakan:

$cptest_file_1.txt test_file_3.txt

Fail baru akan dibuat dengan nama test_file_3.txt mengandungi kandungan yang sama yang test_file_1.txt telah. Sekarang, gunakan:

$perbezaan -qtest_file_1.txt test_file_2.txt

Oleh kerana kedua-dua fail mempunyai kandungan yang serupa, oleh itu, tidak akan ada output.

Cara Memeriksa Perbezaan Fail dalam Mod Konteks Menggunakan Perintah diff:

Untuk mendapatkan perbandingan dalam mod konteks, the -c pilihan akan digunakan dengan perbezaan arahan:

$perbezaan -ctest_file_1.txt test_file_2.txt

Mari kita keluarkan hasilnya.

Untuk mengekalkan perbezaannya, file pertama ditunjukkan dengan *** beserta tanggal dan waktu penciptaan, sementara file kedua ditunjukkan dengan -.

Garis seterusnya menunjukkan pelbagai garis yang dipertimbangkan semasa perbandingan. Untuk fail pertama, ia adalah *** 1.6 **** dan untuk fail kedua, ia adalah —1.5—- :

Perbezaan ditunjukkan oleh simbol:

  • +: Garis tidak ada dalam fail pertama. Masukkan ke dalam fail pertama atau keluarkan dari fail kedua agar sesuai dengan kedua-dua fail tersebut.
  • -: Garis ada di fail pertama tetapi tidak di fail kedua. Cuba masukkan ke dalam fail kedua atau keluarkan dari yang pertama agar sesuai dengan kedua-dua fail tersebut.
  • ! : Garis memerlukan pengubahsuaian agar sesuai.

Cara Memeriksa Perbezaan Fail dalam Mod Bersatu Menggunakan Perintah diff:

Mod bersatu agak serupa dengan mod konteks tetapi tanpa maklumat berlebihan. Bendera yang kami gunakan adalah -u :

$perbezaan -utest_file_1.txt test_file_2.txt

Dalam output, fail pertama ditunjukkan oleh - dan yang kedua dengan +++. Baris kedua menunjukkan bilangan baris yang dipertimbangkan untuk perbandingan dalam kedua-dua fail, kemudian kandungan yang akan dihapus, ditambah, atau diubah dengan simbol-simbol yang ada di dalamnya. Tidak akan ada simbol dengan garis serupa di kedua-dua fail.

Cara Mengabaikan Kepekaan Kes Semasa Menggunakan Perintah Perbezaan:

Sekiranya anda ingin membandingkan fail sambil mengabaikan kepekaan kes, maka gunakan -i bendera:

$perbezaan -itest_file_1.txt test_file_2.txt

Untuk demonstrasi, saya telah membuat D daripada Mendalam dalam fail pertama kecil:

Seperti yang dilihat dalam perintah pertama, perbezaan ditunjukkan; semasa menggunakan -i perbezaan itu telah dihapuskan.

Beberapa pilihan berguna lain dari perbezaan arahan disenaraikan di bawah:

Pilihan Penerangan
-untuk Pilihan ini memperlakukan semua fail sebagai fail teks
-B Ia mengabaikan pengubahsuaian di mana garis kosong
-AND Pilihan ini mengabaikan pengembangan tab
-Saya Ia mengabaikan perubahan di mana semua garis sepadan
-s Memberi output apabila dua fail sama
-dalam Ia mengabaikan semua ruang putih
-DENGAN Ia mengabaikan ruang putih di hujung garisan

Cara Menggunakan Editor Vim untuk Membandingkan Dua Fail:

Kaedah lain untuk membandingkan dua fail adalah menggunakan vimdiff arahan. Untuk itu, anda perlu memasang vim:

$sudotepatpasang saya datang

Sekarang, untuk membandingkan dua fail, gunakan:

$vimdiff test_file_1.txt test_file_2.txt

Kedua-dua fail akan dibuka bersebelahan. Bahagian yang tidak sepadan akan diserlahkan:

Cara Membandingkan Dua Fail Menggunakan colordiff:

Pendekatan lain adalah semacam penyambungan perbezaan arahan. Anda boleh membuat perbandingan lebih dikenali dengan menambahkan warna padanya. Untuk memasang penggunaan:

$sudotepatpasangcolordiff

Untuk membandingkan fail, gunakan:

$colordiff test_file_1.txt test_file_2.txt

Anda boleh ganti perbezaan dengan colordiff untuk mendapatkan output standard perbezaan arahan dalam format berwarna.

Kesimpulan:

Untuk membandingkan fail di Linux dan bahkan di macOS, utiliti yang digunakan disebut diff. Utiliti diff membandingkan dua fail dan memberikan maklumat mengenai perbezaan antara kedua-dua fail tersebut. Pembangun terutamanya menggunakan perintah diff untuk membuat fail patch.

Dalam panduan ini, kami membincangkan secara terperinci mengenai perbezaan arahan dan cara menggunakannya untuk membandingkan dua fail dengan pilihan yang berbeza. Kami juga belajar bagaimana menggunakan colordiff untuk menjadikan perbezaan fail lebih dikenali. Tetapi jika anda mendapati utiliti berasaskan terminal sukar digunakan, ada beberapa alat berasaskan GUI juga, seperti Kompare, DiffMerge, Meld - Diff Tool dan Diffuse - GUI Giff Tool.