Removendo linhas de um arquivo baseado na inexistência em outro arquivo

2

Eu preciso remover linhas do arquivo A, que tem duas colunas, se o arquivo B (apenas uma coluna) não contém a string da coluna1 no arquivo A.

Exemplo. Aqui está fileA :

a b
a c
a d
e f
g h

E fileB :

a
b
g

Aqui, a saída deve ser:

a b
a c
a d
g h
    
por hoda 04.11.2014 / 00:26

3 respostas

5

join fileA fileB

Isso pressupõe que os arquivos sejam classificados na primeira coluna (que estão no seu exemplo).

    
por 04.11.2014 / 07:55
3
awk 'FNR == NR { onecol[$0]=1;next; }; $1 in onecol' fileB fileA
    
por 04.11.2014 / 00:38
1
awk '{if(NR==FNR) a[$1]=$1}{if($1==a[$1] && NR>FNR) print $0}' fileB.txt fileA.txt
    
por 04.11.2014 / 00:42

Tags