[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: uso do sed
From: |
Sérgio |
Subject: |
Re: uso do sed |
Date: |
Mon, 28 Sep 2009 17:44:45 -0000 |
User-agent: |
eGroups-EW/0.82 |
Lembr-se que o cifrão $ tem significado especial para o shell
e portanto você deve passar a string dentro de aspas simples
a não ser que você queira expandir o conteúdo de uma variável passada
ao sed
--- Em address@hidden, jimmy <jimmy.tty@...> escreveu
>
> On Mon, Sep 28, 2009 at 11:40:07AM -0300, rondineli saad wrote:
> >
> >
> > Ola pessoal,
> > estou tendo dificuldade em gerar um determinado resultado. Eu tenho uma
> > sequência de registros que terminam com || (dois pipes). Eu preciso
> > alterar || (dois pipes) por |0|0 (pipe zero pipe zero). Tentei fazer o
> > seguinte:
> > O registro está da seguinte forma:
> > 400|28238565871|1|14/06/1981||JANDIRJUNIOR@...||JANDIR DE SANT'ANA
> >
> > JÚNIOR|1|1|Brasil|1|Solteiro(a)|0|321379299|SSP|2|SP|45109|00234|00797816098|2|B
> > |VERA LUCIA DE SOUZA SANT"ANA|JANDIR SANT"ANA||
> >
> > Eu executei o comando:
> > cat nome-do-arquivo-com-registro | sed -e "s/\$\/||/|0|0/g"
> > Contudo não deu certo. Usei o comando com awk, mas ele gera apenas o
> > final da coluna. Alguem poderia me ajudar?
> > Abçs,
> > Rondineli Saad
>
>
> me parece um caso simples de substituição com o sed:
>
> $ sed 's/||$/|0|0/' arquivo
>
> se quiser usar o awk, pode fazer o seguinte:
>
> $ awk -F'|' '/\|\|$/ { OFS = FS; $(NF-1) = 0; $NF = 0 } { print }' arquivo
>
>
> --
> "Não manejo bem as palavras
> Mas manipulo bem as strings."
> ------------------------------
>