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 shell-script@yahoogrupos.com.br, jimmy <jimmy....@...> 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||jandirjun...@...||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." > ------------------------------ >