AWK - como obter o conteúdo de um arquivo apontado pela primeira coluna de um arquivo

2

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 ?

    
por James 15.04.2016 / 23:08

2 respostas

0

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
    
por 15.04.2016 / 23:27
2

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.

    
por 15.04.2016 / 23:29

Tags