Simplesmente com awk
:
awk 'NR==FNR{ pos[$1]; next }FNR in pos' positions.txt data.txt
-
NR==FNR{ ... }
- processando o primeiro arquivo de entrada (ou seja,positions.txt
):-
pos[$1]
- acumulando posições (números de registro) configurados comopos
array keys -
next
- pula para o próximo registro
-
-
FNR in pos
- durante o processamento do segundo arquivo de entradadata.txt
(FNR
indica quantos registros foram lidos do arquivo de entrada atual). Imprimir registro somente se o número de registro atualFNR
estiver na matriz de posiçõespos
(pesquisa nas chaves)
Exemplo de saída:
667 ffg wew 23
533 jhf qwe 54
...