Processamento de texto Unix

2

2 arquivos de texto. Eu tenho que encontrar os valores uniq dos 2 arquivos de texto e levar a saída no terceiro arquivo com o nome do arquivo, juntamente com valores uniq. Por exemplo a.txt

1
4
3

b.txt

2
1
7

Saída

File.out
b.txt 2
a.txt 3
a.txt 4
b.txt 7

Eu tentei o comando abaixo

cat a.txt b.txt | sort | uniq -u >>file.out

Mas está imprimindo somente valores, não obtendo nomes de arquivos

    
por Kumar 03.11.2018 / 17:43

1 resposta

4

Você pode preceder os nomes dos arquivos usando Awk, depois classificar + uniq no segundo campo:

$ awk '{print FILENAME,$0}' a.txt b.txt | sort -k2 | uniq -uf1
b.txt 2
a.txt 3
a.txt 4
b.txt 7
    
por 03.11.2018 / 18:36