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

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

RES: RES: [shell-script] Alterar campo dentro do arquivo


From: Rodolfo Villanova
Subject: RES: RES: [shell-script] Alterar campo dentro do arquivo
Date: Thu, 1 Jul 2004 14:42:17 -0300

E aí pessoal, tudo "in riba"?

Posso apresentar uma alternativa de solução em awk?

Se tens certeza de que todos os registros entre as posições 55 e 60 possuem
o string "010704", com exceção do cabeçalho e do rodapé, então eu proponho
as seguintes linhas:

head -1 $ARQ_ENTRADA > $ARQ_SAIDA
awk '( substr($0,55,6) == "010704" ) { print substr($0,1,54) "300604"
substr($0,61,340) }' $ARQ_ENTRADA >> $ARQ_SAIDA
tail -1 $ARQ_ENTRADA >> $ARQ_SAIDA

O resultado não será o esperado se no cabeçalho e/ou no rodapé, entre as
posições 55 e 60, houver o string "010704", porque aí ocorreria duplicação
dessa linha.

[]s
--------------------------
Rodolfo D. Gross Villanova

> -----Mensagem original-----
> De: lferreir1 [mailto:address@hidden]
> Enviada em: quinta-feira, 1 de julho de 2004 13:50
> Para: address@hidden
> Assunto: Re: RES: [shell-script] Alterar campo dentro do arquivo
>
>
> --- Em address@hidden, Julio Cezar Neves -
> DATAPREVRJ <julio.neves@p...> escreveu
>
> Caro Júlio, vc tem razão... Não me expressei direito.
> Como o registro é fixo, a posição ao qual quero alterar ( que é o
> campo da data ) tb é fixo. Os demais campos deste registro são
> variáveis.
>
> Não posso alterar via editor, ou pelo sed, pois o meu receio é que
> possa haver o mesmo numeral em outro campo.
>
> Como eu sei que no campo 55 até 60 somente existe 010704, quero
> alterar para 300604. Só agora eu lembrei que este arquivo contém
> header e trailler.
>
> Conseguí expricar ou compricar?
>
> Luiz
>
>
> > Vc colocará todos os registros com a mesma data? Poderia ser mais
> explícito?
> >
> > [ ]s,
> > Julio Cezar Neves
> > - Gerente do Programa de Software Livre -
> > Tel:+55 21 2528-7070 / +55 21 8112-9988
> > Fax: +55 21 2528-7646
> > mailto:julio.neves@p...
> >
> >
> > | -----Mensagem original-----
> > | De: lferreir1 [mailto:lferreir@e...]
> > | Enviada em: quinta-feira, 1 de julho de 2004 12:24
> > | Para: address@hidden
> > | Assunto: [shell-script] Alterar campo dentro do arquivo
> > |
> > |
> > | Galera, boa tarde...
> > | Tenho um arquivo com 1.200 registros, registros fixos com 400bytes
> > | No campo 55-60 é a data no formato DDMMAA
> > |
> > | Como faço para alterar somente estes campos?
> > |
> > | Ex.:
> > | ....010704....
> > | para
> > | ....300604....
> > |
> > | valeu galera!
> > | Luiz



reply via email to

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