12

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

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

brand1 brand2 brand3 brand3 ...

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

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

3 ответа3

7

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .