|
From: | Tiago Peczenyj |
Subject: | Re: [shell-script] Explicação com Comando AWK |
Date: | Tue, 14 Apr 2015 16:27:59 +0200 |
FNR==NR {a[$2]=$3;next}
{print $0,a[$2]?a[$2]:"NA"}
FNR==NR {a[$2]=$3 }
FNR!=NR {print $0,a[$2]?a[$2]:"NA"}
FNR==NR {a[$2]=$3;next}
foi executado APENAS no primeiro arquivo e
{print $0,a[$2]?a[$2]:"NA"}
apenas no segundo arquivo.
no mais o operador $ pega o valor do campo corrente, no registro corrente e $0 representa o registro inteiro.
Bom dia a todos.Procurando sobre formas de manipular dois arquivos via AWK, encontrei o link (http://goo.gl/I7LBIX) que possui o exemplo abaixo:> cat temp1 1 rs1 AA 10 1 rs2 DD 20 1 rs3 EE 30 1 rs4 RR 40 > cat temp2 1 rs1 Pascal 1 rs4 Albinoni > awk 'FNR==NR{a[$2]=$3;next}{print $0,a[$2]?a[$2]:"NA"}' temp2 temp1 1 rs1 AA 10 Pascal 1 rs2 DD 20 NA 1 rs3 EE 30 NA 1 rs4 RR 40 Albinoni
Alguém poderia explicar o funcionamento do comando em negrito? Eu compreendo que o primeiro par de chaves indica o tratamento com a primeria entrada (arquivo temp2) e o segundo par de chaves indica o tratamento com a segunda entrada (arquivo temp1). a é um vetor mas não entendi a manipulação que é feita com ele.Desde já, agradeço.--Carlos Alberto Teixeira Magalhães
Analista de Suporte IIIDepartamento de Informática - DIUniversidade Estadual do Ceará - UECE
A aplicação pediu: "Requires Windows XP, Vista, 7 or better". Então eu instalei Linux.A Ciência da Computação nasceu para resolver problemas que não existiriam se não fosse o computador.--
[Prev in Thread] | Current Thread | [Next in Thread] |