Como posso comparar 2 arquivos e adicionar linhas que não estão no segundo arquivo?

1

Eu tive um problema ao fazer alguma codificação, e eu preciso comparar dois arquivos, aqui está um exemplo de arquivo de entrada inputfile1.txt :

car
php
module
so
js
node
array

e outro arquivo de entrada: inputfile2.txt :

car
module
js
array
so

Os dois arquivos são comparados e, como você vê em inputfile2.txt , node e php não existe.

Aqui está o arquivo de saída outputfile1.txt produzido por command inputfile1.txt inputfile2.txt > outputfile1.txt :

car
module
js
array
so
php
node

O arquivo de saída adiciona valores ausentes exibidos em inputfile1.txt , mas não em inputfile2.txt . São as duas últimas linhas.

Eu tentei algumas coisas com diff e grep , mas nenhuma mostra minha saída desejada.

Estou usando o OSX.

    
por DisplayName 13.11.2014 / 04:21

1 resposta

0

com grep e sem classificar arquivos:

$ (cat file2; grep -vf file2 file1) > output

----- ou -----

$ grep -vf file2 file1) >> file2 # append to end of file2

Com comm e sort :

$ (comm -12 <(sort file1) <(sort file2); comm -3 <(sort file1) <(sort file2) ) > output
   comm -12 file1 file2
          Print only lines present in both file1 and file2.

   comm -3 file1 file2
          Print lines in file1 not in file2, and vice versa.

com sort :

$ sort -u file{1,2} > output
    
por 05.12.2014 / 16:36