Se arquivos são classificados muito fácil, faça a tarefa por diff
comm -13 File1 File2
Eu tenho que comparar dois arquivos, file1 e file2. Cada arquivo tem 56 colunas separadas por |
.
Primeira coluna é o número do empregado no arquivo, vou verificar se o mesmo número de funcionário está presente no segundo arquivo ou não. Se não, vamos escrever a linha inteira no arquivo de saída. Se o mesmo número de funcionário estiver presente no arquivo2, preciso comparar o valor de cada coluna. Se os dados não corresponderem, temos que escrevê-lo no arquivo de saída. Se os valores de cada coluna corresponderem, precisamos omitir esse registro.
Exemplo de arquivo
Arquivo 1
2620|256034|131021|Mission Quality and Wipro Way|||
2622|256034|131021|Mission Quality and Wipro Way|||
2623|256034|131021|Mission Quality and Wipro Way|||
Arquivo 2
2620|256034|234567|Mission Quality and Wipro Way|||
2621|256034|131021|Mission Quality and Wipro Way|||
2622|256034|131021|Mission Quality|||
2623|256034|131021|Mission Quality and Wipro Way|||
Exemplo de saída:
2620|256034|131021|Mission Quality and Wipro Way|||
2621|256034|131021|Mission Quality and Wipro Way|||
2622|256034|131021|Mission Quality|||
Se arquivos são classificados muito fácil, faça a tarefa por diff
comm -13 File1 File2
Você pode usar awk
, por exemplo,
awk -F'|' 'NR==FNR {a[$1]=$0;next;}; !($1 in a) || ($0 != a[$1]);' File1 File2
Usando seu exemplo File1
e File2
$ awk -F'|' 'NR==FNR {a[$1]=$0;next;}; !($1 in a) || ($0 != a[$1]);' File1 File2
2620|256034|234567|Mission Quality and Wipro Way|||
2621|256034|131021|Mission Quality and Wipro Way|||
2622|256034|131021|Mission Quality|||
Tags diff awk file-comparison