Eu tenho 3 arquivos:
file1
:
a1/xyza/ref123
a2/xyza/fer123
a3/xyza/yug123
file2
:
a1/pqra/huj567
a2/pqra/kuf453
a3/pqra/gfc478
file3
:
a1/*/ref123
a2/*/fer123
a3/*/yug123
a1/*/huj567
a2/*/kuf453
a3/*/gfc478
a4/*/hder534
a2/*/kwe657
a3/*/pde639
Quero comparar o primeiro e o terceiro campo de file1
e file2
(ex: a1
, a2
, a3
[campo 1] e ref123
, fer123
, yug123
, hug567
, kuf453
, gfc478
[field3]) com file3
.
se os campos 1 e 3 estiverem presentes na string, então eu só quero substituir *
no arquivo 3 pelo 2º campo do arquivo1 e arquivo2.
E o arquivo final deve ser assim:
file4
:
a1/xyza/ref123
a2/xyza/fer123
a3/xyza/yug123
a1/pqra/huj567
a2/pqra/kuf453
a3/pqra/gfc478
Estou tentando preparar o script bash para o mesmo. O que eu fiz foi usar o comando cut
para separar o primeiro e o terceiro campo do arquivo 1. Comparado com o primeiro e o terceiro campo de file3
usando lógica e ( -a)
. Então tentei usar sed
mas está substituindo todo o *
do 2º campo pelo mesmo valor.
A saída final do arquivo está chegando como:
a1/xyza/ref123
a2/xyza/fer123
a3/xyza/yug123
a1/xyza/huj567
a2/xyza/kuf453
a3/xyza/gfc478
a4/xyza/hder534
a2/xyza/kwe657
a3/xyza/pde639
Tags sed shell-script cut