GNU/Linux >> Belajar Linux >  >> Linux

Membandingkan dua file di terminal linux

jika Anda telah menginstal vim, coba ini:

vimdiff file1 file2

atau

vim -d file1 file2

Anda akan menemukannya fantastis.


Coba sdiff (man sdiff )

sdiff -s file1 file2

Jika Anda lebih suka gaya keluaran berbeda dari git diff , Anda dapat menggunakannya dengan --no-index tandai untuk membandingkan file yang tidak ada dalam repositori git:

git diff --no-index a.txt b.txt

Menggunakan beberapa file dengan masing-masing sekitar 200k string nama file, saya membuat tolok ukur (dengan time bawaan command) pendekatan ini vs beberapa jawaban lain di sini:

git diff --no-index a.txt b.txt
# ~1.2s

comm -23 <(sort a.txt) <(sort b.txt)
# ~0.2s

diff a.txt b.txt
# ~2.6s

sdiff a.txt b.txt
# ~2.7s

vimdiff a.txt b.txt
# ~3.2s

comm tampaknya menjadi yang tercepat sejauh ini, sedangkan git diff --no-index tampaknya menjadi pendekatan tercepat untuk keluaran gaya-berbeda.

Pembaruan 25-03-2018 Anda sebenarnya dapat menghilangkan --no-index tandai kecuali Anda berada di dalam repositori git dan ingin membandingkan file yang tidak terlacak di dalam repositori itu. Dari halaman manual:

Formulir ini untuk membandingkan dua jalur yang diberikan pada sistem file. Anda dapat menghilangkan opsi --no-index saat menjalankan perintah di pohon kerja yang dikontrol oleh Git dan setidaknya salah satu jalur mengarah ke luar pohon kerja, atau saat menjalankan perintah di luar pohon kerja yang dikontrol oleh Git.


Sortir dan gunakan comm :

comm -23 <(sort a.txt) <(sort b.txt)

comm membandingkan (mengurutkan) file input dan secara default menghasilkan tiga kolom:baris yang unik untuk a, baris yang unik untuk b, dan baris yang ada di keduanya. Dengan menentukan -1 , -2 dan/atau -3 Anda dapat menekan output yang sesuai. Oleh karena itu comm -23 a b daftar hanya entri yang unik untuk a. Saya menggunakan <(...) sintaks untuk mengurutkan file dengan cepat, jika sudah diurutkan, Anda tidak memerlukan ini.


Linux
  1. Salin file di terminal Linux

  2. Ganti nama file di terminal Linux

  3. Cara Kompres Dan Dekompresi File Di Linux

  1. Pindahkan file di terminal Linux

  2. Cara Menemukan File dengan Perintah fd di Linux

  3. Mengunggah file ke akun S3 dari baris perintah Linux

  1. Cara Menggabungkan Dua File Teks di Linux

  2. Membandingkan dua daftar yang tidak disortir di linux, mencantumkan yang unik di file kedua

  3. Menampilkan dua file berdampingan