comm não está provando o resultado esperado

0

Eu tenho alguns arquivos ( arquivo 1.txt e arquivo2.txt ) e estou usando o comando unix "comm" para comparar esses arquivos para descobrir linhas exclusivas no arquivo1.txt

Aqui estão as linhas com o arquivo1.txt:

OD1
EN2
OD3
OD4
OD5
EN6
EN7
EN8
EN9
OD10
OD11
OD12

Aqui estão as linhas com o arquivo2.txt:

EN1
EN2
EN3
OD4
OD5
EN6
EN7
EN8
EN9
OD10

Estou usando o comando como:

comm -23 file1.txt file2.txt

real

O resultado é:

OD1 
OD10
OD11
OD12
OD3

esperando

Eu estava esperando:

OD1 
OD11
OD12
OD3

Você pode ajudar como obter os resultados esperados?

    
por AmitDas 11.07.2017 / 13:24

2 respostas

2

Os arquivos devem ser classificados por ordem lexical ou comm não funcionará.

Ordene-os e tente novamente.

Ou use:

comm -23 <(sort file1.txt) <(sort file2.txt)  
    
por 11.07.2017 / 13:28
0

Use

sdiff -s file1.txt file2.txt | awk '{print $1}' | sort -u

A saída é

OD1                                                                                                                                                                      
OD11                                                                                                                                                                     
OD12                                                                                                                                                                     
OD3   
    
por 11.07.2017 / 14:33