Notepad ++ Porównaj dwa pliki i usuń

12

Powiedz, że mam dwa pliki. plik1.txt i plik2.txt

Oba pliki zawierają listę nazw marek obuwia (ponad 1000 nazw), takich jak:

brand1 brand2 brand3 marka ...

Teraz - chcę porównać plik 1 do pliku 2, usunąć wszystkie powtarzające się wpisy i pokazać mi tylko to, co znajduje się w plikach 1, których nie ma w pliku 2 i odwrotnie.

Innymi słowy, celem jest zobaczenie, czego nie ma w przeciwległym pliku, ponieważ wpisy te zostaną wpisane ręcznie w backoffice produktu dla dwóch różnych kategorii, aby na końcu pasowały / były takie same.

Kristian
źródło
2
IMO byłoby to znacznie łatwiejsze do osiągnięcia w Excelu, jeśli możesz skopiować do niego wszystkie swoje dane lub zapisać TXT jako CSV. Może łatwo sortować, usuwać duplikaty i jestem pewien, że porównanie kolumn również nie byłoby trudne.
Karan
Przydatny może być następujący link: superuser.com/a/290445
akjain,

Odpowiedzi:

7

Czy wtyczka „Porównaj” Notepad ++ zrobiłaby to samo?

Możesz go zainstalować z menu wtyczek Notepad ++ => Menedżer wtyczek => Porównaj 1.5.6

Oto oficjalny opis: Bardzo przydatna wtyczka diff, która pokazuje różnicę między 2 plikami (obok siebie). Autor: Ty Landercasper, obecnie utrzymywany i aktualizowany przez Jean-Sebastien Leroy Źródło: http://sourceforge.net/projects/npp-plugins/files/ComparePlugin/Compare_1_5_5_src.zip/download

Fabien
źródło
2
Niestety nie sądzę, że tak. Wtyczka Porównaj jedynie podkreśla różnice między dwoma plikami, ale nie oferuje narzędzi do dokonywania selekcji lub edycji na podstawie wyników. Chociaż z pewnością jest to pomocne, obawiam się, że zadanie to wciąż jest bardzo nużące dla ponad tysiąca marek.
Marcks Thomas
3

Stare pytanie, ale ...

  1. Porównaj pliki w WinMerge
  2. Narzędzia -> Wygeneruj łatkę (zapisz to)
  3. Łatka ma zmiany od obu, ale także dodatkowe znaczniki. W notatniku ++ wykonaj następujące czynności:

        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. Użyj wtyczki TextFX w Notatniku ++ albo wykonaj Narzędzia-> bez rozróżniania wielkości liter (wybrana opcja WYJŚCIE UNIKALNE) lub Edytuj-> Usuń puste linie

Trochę mungy, ale jeszcze nie znalazłem narzędzia, które zrobi to za jednym kliknięciem.

James King
źródło
0

Jeśli dostępny jest Unix, możesz wypróbować te proste kombinacje prostych poleceń; tr, sortuj i komunikuj.

Najpierw przekonwertuj plik z poziomo oddzielonego na pionowo:

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

Następnie posortuj pliki:

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

Teraz możesz zobaczyć, co jest w pliku 1, a nie w pliku 2

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

Lub zobacz, co jest w pliku 2, a nie w pliku 1

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

Jeśli chcesz, aby dane wyjściowe były w tym samym formacie poziomym, z którym zacząłeś, możesz to zrobić:

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

Po zakończeniu możesz usunąć utworzone pliki tymczasowe:

rm /tmp/file1.vertical /tmp/file2.vertical /tmp/file1.sorted /tmp/file2.sorted
eric
źródło