Notepad ++ Bandingkan dua file dan hapus

12

Katakanlah saya punya dua file. file1.txt dan file2.txt

Kedua file tersebut berisi daftar nama merek sepatu (1000+ nama), seperti ini:

brand1 brand2 brand3 merek ...

Sekarang - saya ingin membandingkan file1 ke file2, menghapus semua entri berulang dan hanya menunjukkan kepada saya Whats di file1 yang tidak ada di file2 dan sebaliknya.

Tujuannya dengan kata lain adalah untuk melihat apa yang tidak ada di file yang berlawanan karena entri ini akan diketik secara manual ke dalam kantor produk untuk dua kategori yang berbeda sehingga mereka akan cocok / sama pada akhirnya.

Kristian
sumber
2
IMO ini akan jauh lebih mudah untuk dicapai di Excel jika Anda dapat menyalin semua data Anda ke dalamnya atau menyimpan TXT sebagai CSV. Itu dapat dengan mudah mengurutkan, menghapus duplikat dan saya yakin perbandingan kolom tidak akan sulit untuk dicapai.
Karan
Tautan berikut mungkin berguna: superuser.com/a/290445
akjain

Jawaban:

7

Apakah plugin "Bandingkan" dari Notepad ++ akan melakukan triknya?

Anda dapat menginstalnya dari menu Notepad ++ plugins => Plugin Manager => Bandingkan 1.5.6

Berikut deskripsi resmi: Plugin diff yang sangat berguna untuk menampilkan perbedaan antara 2 file (berdampingan). Penulis: Ty Landercasper, sekarang dikelola dan diperbarui oleh Jean-Sebastien Leroy Sumber: http://sourceforge.net/projects/npp-plugins/files/ComparePlugin/Compare_1_5_5_src.zip/download

Fabien
sumber
2
Sayangnya, saya rasa tidak. Plugin Compare hanya menyoroti perbedaan antara dua file, tetapi tidak menawarkan alat untuk membuat pilihan atau pengeditan berdasarkan hasilnya. Meskipun tentu saja membantu, saya khawatir tugas itu masih sangat membosankan untuk lebih dari seribu nama merek.
Marcks Thomas
3

Sebuah pertanyaan lama, tapi ...

  1. Bandingkan file di WinMerge
  2. Alat -> Hasilkan Patch (simpan ini)
  3. Patch memiliki perubahan dari keduanya, tetapi juga markup tambahan. Di notepad ++, lakukan penggantian berikut:

        Search Mode:  Regular Expression
        Find What:    ^[0-9-].*$
        Replace With: <blank>
        Replace All
    

    .

        Search Mode:  Regular Expression
        Find What:    (<|>)
        Replace With: <blank>
        Replace All
    
  4. Gunakan plugin TextFX di notepad ++, lakukan semacam Tools-> case-insensitive (pilihan output UNIQUE dipilih), atau Edit-> Hapus baris kosong

Agak mungy, tapi saya belum menemukan alat yang akan melakukan ini dalam satu klik.

James King
sumber
0

Jika Unix tersedia untuk Anda, Anda bisa mencoba kombinasi sederhana dari perintah sederhana ini; tr, urutkan, dan komunikasi.

Pertama, konversikan file dari yang dipisahkan secara horizontal menjadi terpisah secara vertikal:

tr '[:blank:]' '\n' < file1.txt > /tmp/file1.vertical
tr '[:blank:]' '\n' < file2.txt > /tmp/file2.vertical

Kemudian urutkan file:

sort /tmp/file1.vertical > /tmp/file1.sorted
sort /tmp/file2.vertical > /tmp/file2.sorted

Sekarang Anda dapat melihat apa yang ada di file1 yang tidak ada di file2

comm -23 /tmp/file1.sorted /tmp/file2.sorted

Atau lihat apa yang ada di file2 yang tidak ada di file1

comm -13 /tmp/file1.sorted /tmp/file2.sorted

Jika Anda ingin output dalam format horizontal yang sama dengan yang Anda mulai, Anda bisa melakukan ini:

comm -23 /tmp/file1.sorted /tmp/file2.sorted | tr '\n' ' '
comm -13 /tmp/file1.sorted /tmp/file2.sorted | tr '\n' ' '

Setelah selesai, Anda dapat menghapus file sementara yang Anda buat:

rm /tmp/file1.vertical /tmp/file2.vertical /tmp/file1.sorted /tmp/file2.sorted
eric
sumber