GNU/Linux >> Belajar Linux >  >> Linux

Keluarkan Common Lines (kesamaan) Dari Dua File Teks (Kebalikan Dari Diff)?

Diff adalah alat yang hebat untuk menampilkan perubahan antara dua file. Tapi bagaimana cara menampilkan persamaan dari dua file teks (sambil mengabaikan perbedaannya)?

Yaitu. contoh masukan:

a:
Foo Bar
X
Hello
World
42

b:
Foo Baz
Hello
World
23

Keluaran semu (seperti ini):

@@ 2,3
=Hello World

Mengurutkan kedua file dan menggunakan comm saja tidak cukup, karena dalam hal ini informasi baris akan hilang.

Jawaban yang Diterima:

Bagaimana dengan menggunakan diff, meskipun Anda tidak menginginkan diff? Coba ini:

diff --unchanged-group-format='@@ %dn,%df 
  %<' --old-group-format='' --new-group-format='' 
  --changed-group-format='' a.txt b.txt

Inilah yang saya dapatkan dengan data sampel Anda:

$ cat a.txt 
Foo Bar
X
Hello
World
42
$ cat b.txt 
Foo Baz
Hello
World
23
$ diff --unchanged-group-format='@@ %dn,%df
%<' --old-group-format='' --new-group-format='' 
  --changed-group-format='' a.txt b.txt
@@ 2,3
Hello
World

Linux
  1. Ekstrak Teks Antara Dua Baris Tertentu?

  2. Cara menyimpan hasil diff di Linux

  3. Menampilkan dua file berdampingan

  1. Cara mendapatkan perbedaan (hanya penambahan) antara dua file di linux

  2. Bagaimana saya bisa membedakan dua file XML?

  3. Bagaimana membedakan hanya baris pertama dari dua file?

  1. Bagaimana Cara Mengubah Ekstensi Banyak File?

  2. Diff Reports Dua File Berbeda, Meski Sama!?

  3. Cara mengonversi file teks ke semua huruf besar atau kecil