Adicionando apenas palavras existentes em um arquivo de outro arquivo e removendo o resto (unix)?

1

Eu tenho dois textos (contagem de frequência dic) Eu quero aumentar a contagem de freqüência do primeiro arquivo, adicionando apenas a mesma palavra no segundo arquivo.

por exemplo meu arquivo1

100  man 
522  women  
600  kids 
600  football 

meu arquivo2

100 man 
300 women 
600 kids 
900 football
500 fifa 
500 world 

Eu quero essa saída

200 man
822 women 
1200 kids
1500 football 

As palavras no segundo arquivo, que não saem no primeiro arquivo, serão removidas.

500 fifa  # removed 
500 world # removed  

Eu tentei com sed / cat e entrei no cmd mas não estou obtendo o resultado que quero

    
por white_terminal 12.01.2017 / 14:42

1 resposta

5

Aqui está uma abordagem do awk:

$ awk 'NR==FNR{a[$2]=$1; next}($2 in a){print $1+a[$2],$2}' file1 file2
200 man
822 women
1200 kids
1500 football

Se você também quiser incluir palavras que aparecem em file1 , mas não em file2 , use:

awk 'NR==FNR{a[$2]=$1; next}{print $1+a[$2],$2}' file2 file1 
    
por 12.01.2017 / 14:48