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
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?
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