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

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

Re: [shell-script] Duvida AWK


From: jimmy
Subject: Re: [shell-script] Duvida AWK
Date: Wed, 26 Jan 2011 21:48:35 -0200
User-agent: Mutt/1.4.2.3i

On Wed, Jan 26, 2011 at 02:45:08PM -0000, fsilva6 wrote:
> 
> Estou precisando montar um AWK que faça o seguinte:
> 
> tenho o arquivo:
> 1 a
> 2 b
> 3 c
> 4 d
> 4 d
> 5 e
> 
> preciso gerar dois arquivos
> 
> Arq1 -
> 1 a
> 2 b
> 3 c
> 5 e
> 
> Arq2 -
> 4 d
> 4 d
Até  aqui eu  entendi que  para "Arq1"  vão os  registros únicos  e para
"Arq2" irão os duplicados.
> 
> abaixo o awk que estou já montei e não está rodando.
Este script está incompleto até para tentar testar.

> V_ID_CONTA =SUBSTR(LINHA, 1,15)
> V_NUM_CONTA =SUBSTR(LINHA,16, 100)
"SUBSTR" não é  uma função do awk,  ou você definiu uma  função com este
nome em algum lugar, ou há um erro tipográfico aqui.

Outra  coisa, os  offsets  usados nessas  expressões  sugerem dados  bem
diferentes do exemplo mostrado, a não  ser que existam vários espaços em
branco entre  os dados e o  cliente de e-mail truncou  esses espaços. Se
for esse segundo caso, pode ignorar essa observação.

> V_ID_CONTA_ANT = ""
> V_NUM_CONTA_ANT = ""
> V_LINHA_ANT = ""
> CONTADOR = 1
> 
> if ( V_ID_CONTA != V_ID_CONTA_ANT && V_NUM_CONTA != V_NUM_CONTA_ANT ){
> 
> V_ID_CONTA_ANT = V_ID_CONTA
> V_NUM_CONTA_ANT = V_NUM_CONTA
> V_LINHA_ANT=$0
> 
> if ( CONTADOR >= 2){
> 
> if ( CONTADOR == 2){
> 
> print V_LINHA_ANT >> AT
> print $0 >> AT
Você fez uso de uma variável AT aqui, mas em nenhum lugar desse script
ela é definida com algum valor.

> 
> }else{
> 
> print $0 >> AT
> 
> }
> 
> }
> 
> CONTADOR++
> 
> } else {
> 
> if ( CONTADOR == 1){
> 
> print V_LINHA_ANT >> AT
> print $0 >> AT
> 
> }else{
> 
> print $0 >> AR
> 
> }
> 
> }

Tente  formular um  caso de  teste melhor  para o  seu problema  e tente
corrigir  os problemas  do seu  script,  com certeza  o compilador  está
avisando sobre vários erros e você precisa levá-los em consideração.

Como última  observação, se  seu arquivo couber  na memória,  será muito
mais simples fazer isso usando arrays associativos.

-- 
"Não manejo bem as palavras
Mas manipulo bem as strings."
------------------------------


reply via email to

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