grep padrão único com mais de uma correspondência

0

Eu tenho um arquivo ( X.txt ) com uma lista de entradas exclusivas. Eu gostaria de usar este arquivo para grep de outro arquivo Y.txt que contém mais de uma entrada para um único padrão de X.txt .

X.txt contém:

A.0  
B.0
C.1
D.1

Y.txt contém:

A.0  10
A.0  11
A.1  10
B.0  18
C.1  5
D.1  19
D.1  36
D.2  51

Saída desejada:

A.0  10
A.0  11
B.0  18
C.1  5
D.1  19
D.1  36

Se eles forem exclusivos, basta usar grep -w -f X.txt Y.txt works. Mas alguém poderia me ajudar como modificar grep para a saída desejada ou usando awk .

    
por heemayl 24.02.2015 / 18:38

1 resposta

1

Parece que grep -w não atende às linhas A.0 porque o arquivo X.txt possui espaços à direita nessa linha (quebrando o requisito de limite de palavras de -w). Experimente o sinalizador "padrões de sequência fixa", -F

grep -Ff X.txt Y.txt

Isso também funciona porque os arquivos são classificados:

join X.txt Y.txt
    
por glenn jackman 24.02.2015 / 19:55