Via awk
awk 'NR==FNR{A[$4]=$0;next}{print A[$1]}' file2.txt file1.txt
Ou sort
ed saida via join
:
join -o 2.1 2.2 2.3 2.4 -2 4 <(sort file1.txt) <(sort -k4 file2.txt)
Estou tentando recuperar as linhas correspondentes de um arquivo, no entanto, o arquivo que possui o "índice" ou a lista de correspondências a serem recuperadas também possui entradas duplicadas e quero imprimir as duplicatas também.
Exemplo:
Arquivo 1 (arquivo de índice ou lista de strings para correspondência)
abc
tgf
abc
ggg
aaa
fff
Arquivo 2 (o que eu quero recuperar para cada uma das correspondências no arquivo 1)
Fred 1 3 abc
Amy 2 4 ggg
Dan 5 6 tgf
Mike 9 1 fff
Steve 2 1 aaa
Meu resultado desejado seria (a ordem não é importante, apenas que eu corresponda a cada linha):
Fred 1 3 abc
Dan 5 6 tgf
Fred 1 3 abc
Amy 2 4 ggg
Steve 2 1 aaa
Mike 9 1 fff
Estou familiarizado e experimentei o grep da seguinte maneira, mas ele não imprime as entradas duplicadas.
grep -Fwf file1.txt file2.txt
Fred 1 3 abc
Amy 2 4 ggg
Dan 5 6 tgf
Mike 9 1 fff
Steve 2 1 aaa