Analisando dois arquivos de entrada e comparando a existência da linha

1

Eu preciso pegar dois arquivos de texto e verificar se uma linha que existe no Arquivo A não existe em nenhum lugar no Arquivo B.

Cada linha no Arquivo A que não existe no Arquivo B deve ser copiada para um log de saída.

Um amigo meu sugeriu o SED, mas eu nunca o usei antes, então, como eu faria isso?

    
por Philos 02.12.2012 / 06:44

2 respostas

2

Parece que as linhas são exclusivas e a ordem não importa, então tente:

sort fileA > fileA.sort
sort fileB > fileB.sort
diff fileA.sort fileB.sort | sed -n "/^</{s/< //;p}"
    
por 02.12.2012 / 07:04
1

Linhas que existem apenas no arquivo A:

comm -23 <(sort fileA) <(sort fileB) > output.txt

Todas as linhas exclusivas do arquivo A serão salvas no arquivo output.txt .

    
por 02.12.2012 / 12:53