[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: RES: [shell-script] Alterar campo dentro do arquivo
From: |
lferreir1 |
Subject: |
Re: RES: [shell-script] Alterar campo dentro do arquivo |
Date: |
Thu, 01 Jul 2004 18:09:42 -0000 |
User-agent: |
eGroups-EW/0.82 |
Aurélio... Mil desculpas pelo sed... Acho que estava com a cabeça na
lua...
Comigo não funcionou com a sua dica.
Estarei resumindo a realidade do problema. Salvei um arquivo com um
único registro do original para os testes. Vamos lá!:
>cat FSNS010025jul.txt
1051808015817120040630083167SUPERLIVRO LTDA. RUA
RIACHUELO, 1*
>cut -c15-22 FSNS010025jul.txt
20040630
>sed 's/^\(.\{15\}\)20040630/\199999999/' FSNS010025jul.txt
1051808015817120040630083167SUPERLIVRO LTDA. RUA
RIACHUELO, 1*
Note que na coluna 15 até 22 ainda permanece a data 20040630
Onde eu errei?
Obs. O sed do meu S.O., Unix-Solaris v.7, não tem a opção -r
--- Em address@hidden, Aurelio Marinho Jargas
<aureliojargas@y...> escreveu
> oi luiz,
>
> --- lferreir1 <lferreir@e...> escreveu:
>
>
> > Não posso alterar via editor, ou pelo sed, pois o meu receio é
que
> > possa haver o mesmo numeral em outro campo.
>
> ca-ca-ca-como não pode usar o sed? BLASFÊMIA!!! :)
>
>
> > 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.
>
> sed 's/^\(.\{54\}\)010704/\1300604/'
> ou
> sed -r 's/^(.{54})010704/\1300604/'
>
> o .{54} representa os primeiros 54 chars da linha, que estao
> dentro de um grupo () e são referenciados depois com o \1, então
> não são alterados. depois segue o numero antigo trocado pelo
> novo.
>
> era wilson?
>
> falou
>
> =====
> --
> Aurelio Marinho Jargas, Curitiba, Conectiva
> A odisseia verde no FISL http://aurelio.net/curso/fisl
>
>
______________________________________________________________________
>
> Participe da pesquisa global sobre o Yahoo! Mail:
> http://br.surveys.yahoo.com/global_mail_survey_br