Блокнот ++ Сравните два файла и удалите

12

Скажем, у меня есть два файла. file1.txt и file2.txt

Оба файла содержат список наименований обуви (более 1000 наименований), например:

brand1 brand2 brand3 brand3 ...

Теперь - я хочу сравнить файл1 с файлом2, удалить все повторяющиеся записи и показать только то, что в файлах1, а не в файле2, и наоборот.

Другими словами, цель состоит в том, чтобы увидеть, чего нет в противоположном файле, поскольку эти записи будут вручную введены в бэк-офис продукта для двух разных категорий, чтобы они в конечном итоге соответствовали / были одинаковыми.

Kristian
источник
2
IMO, это было бы намного проще сделать в Excel, если бы вы могли скопировать в него все свои данные или сохранить TXT как CSV. Он может легко сортировать, удалять дубликаты, и я уверен, что сравнение столбцов также не составит труда.
Каран
Следующая ссылка может быть полезна: superuser.com/a/290445
akjain

Ответы:

7

Подойдет ли плагин «Сравнить» Notepad ++?

Вы можете установить его из меню плагинов Notepad ++ => Менеджер плагинов => Сравнить 1.5.6

Вот официальное описание: Очень полезный плагин diff, показывающий разницу между двумя файлами (рядом). Автор: Тай Ландеркаспер, теперь поддерживается и обновляется Жаном-Себастьеном Леруа. Источник: http://sourceforge.net/projects/npp-plugins/files/ComparePlugin/Compare_1_5_5_src.zip/download

Фабьен
источник
2
К сожалению, я не думаю, что это так. Плагин сравнения просто выделяет различия между двумя файлами, но не предлагает никаких инструментов для выбора или редактирования на основе его результатов. Хотя это, безусловно, полезно, я боюсь, что эта задача все еще очень утомительна для более тысячи торговых марок.
Маркс Томас
3

Старый вопрос, но ...

  1. Сравните файлы в WinMerge
  2. Инструменты -> Создать патч (сохранить это)
  3. Патч имеет изменения от обоих, но также и дополнительную разметку. В notepad ++ выполните следующие замены:

        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. Используйте плагин TextFX в notepad ++ или выполните сортировку с учетом регистра без учета регистра (выбрана опция UNIQUE) или «Правка» -> «Удалить пустые строки».

Немного туповато, но я еще не нашел инструмент, который сделает это в один клик.

Джеймс Кинг
источник
0

Если вам доступен Unix, вы можете попробовать эти простые комбинации простых команд; tr, sort и comm.

Сначала преобразуйте файл из горизонтально разделенного в вертикально разделенный:

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

Затем отсортируйте файлы:

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

Теперь вы можете видеть, что находится в file1, а не в file2.

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

Или посмотрите, что находится в file2, а не в file1

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

Если вы хотите вывод в том же горизонтальном формате, с которого вы начали, вы можете сделать это:

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

Когда вы закончите, вы можете удалить временные файлы, которые вы создали:

rm /tmp/file1.vertical /tmp/file2.vertical /tmp/file1.sorted /tmp/file2.sorted
Эрик
источник