Dentro de awk
você pode chamar a função system
para executar o comando externo:
awk '{system("cat "$1)}' f1.txt
Ou se você quiser imprimir apenas o conteúdo do file1
e não do file3
:
awk 'NR==1{system("cat "$1)}' f1.txt
Eu tenho um arquivo f1.txt que tem conteúdo como abaixo
file1 file2
file3 file4
e o arquivo1 tem conteúdo como abaixo
student1 10
student2 20
Agora eu quero pegar a primeira coluna de f1.txt e imprimir o conteúdo do arquivo1 usando o awk.
Eu tentei awk '{print $1}' f1.txt | cat $1
, mas não funciona.
Qualquer maneira simples de obter o conteúdo do arquivo1 usando awk
?
Se você não estiver fazendo nenhum processamento dos dados no awk e usando o awk apenas para selecionar os dados, isso é adequado para xargs, por exemplo,
awk '{ print $1; }' | xargs cat
Isso tem a vantagem sobre system
de que xargs coletará vários parâmetros para o cat e, assim, será um pouco mais eficiente.
Tags awk