Notepad ++ Compare dois arquivos e remova

12

Digamos que eu tenha dois arquivos. arquivo1.txt e arquivo2.txt

Ambos os arquivos contêm uma lista de nomes de marcas de calçados (mais de 1.000 nomes), assim:

brand1 brand2 brand3 brand ...

Agora - eu quero comparar arquivo1 para arquivo2, excluir todas as entradas recorrentes e só me mostrar o que está em arquivos1 que não está no arquivo2 e vice-versa.

Em outras palavras, o objetivo é ver o que não está no arquivo oposto, pois essas entradas serão digitadas manualmente em um backoffice de produto para duas categorias diferentes, de modo que elas correspondam / sejam as mesmas no final.

Kristian
fonte
2
IMO isso seria muito mais fácil de realizar no Excel, se você pode copiar todos os seus dados para ele ou salvar os TXTs como CSVs. Ele pode facilmente classificar, remover duplicatas e tenho certeza de que a comparação de colunas também não seria difícil de realizar.
Karan
O seguinte link pode ser útil: superuser.com/a/290445
akjain

Respostas:

7

O plugin "Compare" do Notepad ++ faria o truque?

Você pode instalá-lo a partir do menu do Notepad ++ plugins => Plugin Manager => Compare 1.5.6

Aqui está a descrição oficial: Um plugin diff muito útil para mostrar a diferença entre 2 arquivos (lado a lado). Autor: Ty Landercasper, agora mantido e atualizado por Jean-Sebastien Leroy Fonte: http://sourceforge.net/projects/npp-plugins/files/ComparePlugin/Compare_1_5_5_src.zip/download

Fabien
fonte
2
Infelizmente, não acho que sim. O plug-in Compare apenas destaca as diferenças entre dois arquivos, mas não oferece ferramentas para fazer seleções ou edições com base em seus resultados. Embora certamente seja útil, receio que a tarefa ainda seja muito tediosa para mais de mil marcas.
Marcks Thomas
3

Uma velha pergunta, mas ...

  1. Compare os arquivos no WinMerge
  2. Ferramentas -> Gerar Patch (salve isso)
  3. O patch tem alterações de ambos, mas também de marcação extra. No notepad ++, faça o seguinte substitui:

        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. Use o plugin TextFX no notepad ++ ou faça um tipo de ferramentas sem diferenciação de maiúsculas e minúsculas (opção UNIQUE de saída selecionada) ou Editar-> Excluir linhas em branco

Bit mungy, mas eu ainda tenho que encontrar uma ferramenta que vai fazer isso em um clique.

James King
fonte
0

Se o Unix estiver disponível para você, você pode tentar estas combinações simples de comandos simples; tr, classificar e comm.

Primeiro, converta o arquivo de separado horizontalmente para verticalmente separado:

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

Em seguida, classifique os arquivos:

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

Agora você pode ver o que está no arquivo1 que não está no arquivo2

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

Ou veja o que está no arquivo2 que não está no arquivo1

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

Se você quiser a saída no mesmo formato horizontal com o qual começou, poderá fazer isso:

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

Quando terminar, você poderá excluir os arquivos temporários criados:

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