Notepad ++ Confronta due file e rimuovi


12

Di 'che ho due file. file1.txt e file2.txt

Entrambi i file contengono un elenco di nomi di marchi di scarpe (oltre 1000 nomi), in questo modo:

brand1 brand2 brand3 brand ...

Ora - Voglio confrontare file1 con file2, eliminare tutte le voci ricorrenti e mostrarmi solo cosa c'è in file1 che non è in file2 e viceversa.

In altre parole, l'obiettivo è quello di vedere cosa non c'è nel file opposto poiché queste voci verranno digitate manualmente in un backoffice del prodotto per due diverse categorie in modo che corrispondano / saranno le stesse alla fine.


2
IMO questo sarebbe molto più facile da realizzare in Excel se puoi copiare tutti i tuoi dati o salvare i TXT come CSV. Può facilmente ordinare, rimuovere i duplicati e sono sicuro che neanche il confronto delle colonne sarebbe difficile da realizzare.
Karan

Il seguente link può essere utile: superuser.com/a/290445
akjain

Risposte:


7

Il plug-in "Compare" di Notepad ++ farebbe il trucco?

Puoi installarlo dal menu di Notepad ++ plugins => Plugin Manager => Confronta 1.5.6

Ecco la descrizione ufficiale: un plugin diff molto utile per mostrare la differenza tra 2 file (fianco a fianco). Autore: Ty Landercasper, ora gestito e aggiornato da Jean-Sebastien Leroy Fonte: http://sourceforge.net/projects/npp-plugins/files/ComparePlugin/Compare_1_5_5_src.zip/download


2
Sfortunatamente, non credo. Il plugin Compare si limita a evidenziare le differenze tra due file, ma non offre strumenti per effettuare selezioni o modifiche in base ai suoi risultati. Anche se sicuramente utile, temo che il compito sia ancora molto noioso per oltre mille marchi.
Marcks Thomas

3

Una vecchia domanda, ma ...

  1. Confronta i file in WinMerge
  2. Strumenti -> Genera patch (salva questo)
  3. La patch presenta modifiche da entrambi, ma anche markup extra. In notepad ++, procedi come segue:

        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. Usa il plugin TextFX in notepad ++ o fai un ordinamento Strumenti-> senza distinzione tra maiuscole e minuscole (opzione UNIQUE di output selezionata), oppure Modifica-> Elimina righe vuote

Un po 'schifoso, ma devo ancora trovare uno strumento che lo farà in un clic.


0

Se Unix è disponibile per te, puoi provare queste semplici combinazioni di semplici comandi; tr, sort e comm.

Innanzitutto, converti il ​​file da separato in orizzontale in separato in verticale:

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

Quindi ordinare i file:

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

Ora puoi vedere cosa c'è in file1 che non è in file2

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

Oppure vedi cosa c'è in file2 che non è in file1

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

Se vuoi l'output nello stesso formato orizzontale con cui hai iniziato, puoi farlo:

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

Al termine, è possibile eliminare i file temporanei creati:

rm /tmp/file1.vertical /tmp/file2.vertical /tmp/file1.sorted /tmp/file2.sorted
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.