insere valor no final de cada registro com base em IDs exclusivos

1

Eu tenho 2 arquivos, um com Delimited e outro é um arquivo posicional.

Esses dois arquivos compartilham os mesmos IDs únicos, conforme mostrado abaixo, mas ambos os arquivos contêm informações diferentes.

del.txt

11111|abc|01|||||||||

22222|xyz|09|||||||||

pos.txt

11111  abc newyork US 

22222  xyz dallas  US

O arquivo del.txt consiste em um único ID de membro seguido por um nome e um ID alternativo separados por | (delimitado) e da mesma forma, pos.txt tem um ID único juntamente com o nome, exceto o id alternativo no formato posicional.

Eu quero inserir um ID alternativo em pos.txt somente se o ID de membro único corresponder ao arquivo mostrado abaixo

pos.txt

11111  abc newyork US 01

22222  xyz  dallas US 09

Como podemos conseguir isso usando o script de shell?

    
por UNIXbest 21.04.2014 / 11:27

1 resposta

3

Com esse problema, acho que a melhor maneira é usar awk :

$ awk -F'[ |]' 'FNR==NR{a[$1]=$3;next}($1 in a){print $0" "a[$1]}' del.txt pos.txt 
11111  abc newyork US 01

22222  xyz dallas  US 09
    
por 21.04.2014 / 11:44