shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Condicional else if no AWK


From: Rodrigo Cunha
Subject: Re: [shell-script] Condicional else if no AWK
Date: Tue, 16 Aug 2016 18:23:39 -0300

No caso o 
${vet[3*2]} , as colchetes "[]" já interpretam matematicamente, então
acredito eu que bastaria fazer um loop com o for.

Em 16 de agosto de 2016 18:21, Rodrigo Cunha <address@hidden> escreveu:
Não sei se peguei o conceito, você lê o arquivo e cria um vetor para uma analise e dependendo do valor da posição do vetor cria uma saida com uma formatação que vai ser inserida no sgbd?
Caso seja essa a situação
Acho que no "bash > 4" se for o caso seria melhor criar um vetor e apartir do valor dele no script tomar as decisões.
Exemplo de criação do vetor em alta performance:

mapfile vet < arquivo echo ${vet[3*2]}






Em 16 de agosto de 2016 15:31, address@hidden [shell-script] <address@hidden.br> escreveu:
 

Caro m0delito

O que o Tiago disse está corretíssimo.

O que temos aqui é um problema de lógica

O "ifs" existentes redirecionavam em função de um erro mudando o fluxo e caso não tenha erro monta a SQL desejada:

O que vc quer não é mais redirecionar para um arquivo de erro, mas mudar o valor dos campos para NULL caso estejam vazio.

Pode ser assim:

NF==10 {
 if (length($1)==0) { print "CAMPO1 - OBRIGATORIO" >> "error.log" }
 else if (length($2)==0) { print "CAMPO2 - OBRIGATORIO" >> "error.log" }
 else if (length($3)==0) { print "CAMPO3 - OBRIGATORIO" >> "error.log" }
 else {
   if (length($5)==0)  {$5="NULL"}
   if (length($6)==0)  {$6="NULL"}
   if (length($7)==0)  {$7="NULL"}
   if (length($8)==0)  {$8="NULL"}
   print $1, $2, $3, $5, $6,$7,$8 >> "arquivo.sql"
 }

}

Outra forma interessante para apontar o valor NULL para os campos pode ser nesse formato
Em vez de:
if (length($5)==0)  {$5="NULL"}

pode ser:
$5 = ( length($5)==0 ? "NULL" : $5 )

Isso ajuda?

[]'s
Itamar




--
Atenciosamente,
Rodrigo da Silva Cunha




--
Atenciosamente,
Rodrigo da Silva Cunha


reply via email to

[Prev in Thread] Current Thread [Next in Thread]