Compare dois arquivos [closed]

0

Eu quero comparar dois arquivos nos quais os dados são delimitados por um canal | . Ambos os arquivos têm os mesmos resultados, mas apenas alguns campos podem variar.

Arquivo 1:

A|B|C|D

Arquivo 2:

A|B|F|D

Eu quero comparar dois arquivos campo por campo, ou seja, omitindo a coluna 3, meu resultado deve mostrar zero diferença.

Eu quero encontrar a diferença, se houver. além das poucas colunas que eu menciono.

    
por Abdul 30.01.2015 / 08:08

1 resposta

1

Você pode usar cut para remover colunas indesejadas. Na página do manual:

   -d, --delimiter=DELIM
          use DELIM instead of TAB for field delimiter

   -f, --fields=LIST
          select  only  these  fields;   also  print any line that contains 
          no delimiter character, unless the -s option is specified

   --complement
          complement the set of selected bytes, characters or fields

Você pode usar isso para criar arquivos temporários, que você pode comparar usando diff da seguinte forma:

cut -d'|' -f 3 --complement <file1 >file1.tmp
cut -d'|' -f 3 --complement <file2 >file2.tmp
diff file1.tmp file2.tmp
    
por 30.01.2015 / 08:17