sed -i 'comandos' arquivo

vai sobreescrever o arquivo

se deseja criar um arquivo 'antigo' podes fazer assim

sed -i.old 'comandos' arquivo

no arquivo.old tem tudo que havia no arquivo antes de aplicar o sed ;-)

[]´s Tiago

On 5/21/07, Sebastiao Gonella <[EMAIL PROTECTED]> wrote:
>
>   Pesso$all,
>
> o sed consegue escrever direto no arquivo tb?? tipo, se uso o comando sed
> '1s/^\(.\{8\}\)lindo/\1feio/' arquivo.txt ele me retorna o conteúdo do
> arquivo com a linha e coluna modificado, mas o arquivo que apontei
> continua
> a mesma coisa.. pergunto isso pq nao gostaria de ficar jogando em outro
> arquivo.... se direcionar a saida do sed ao mesmo arquivo, tipo sed
> '1s/^\(.\{8\}\)lindo/\1feio/' arquivo.txt > arquivo.txt, tb nao funciona.
> Alguma ideia?
>
> Obrigado.
>
> Em 18/05/07, Sebastiao Gonella <[EMAIL PROTECTED]<segonella%40gmail.com>>
> escreveu:
>
> >
> > Agora entendi Flavio, joia mesmo. Acho q isso vai resolver meu
> > problema....
> > Obrigado pela ajuda Julio, Flavio e lista.
> >
> > Abraços
> > Gonella
> >
> > Em 18/05/07, Flavio Junior <[EMAIL PROTECTED] <billpp%40gmail.com>>
> escreveu:
> > >
> > > vamos complicar/explicar as coisas...
> > > [EMAIL PROTECTED] root]# for ((i=0;i<10;i++)); do echo "$i -
> > > abcdefghijklmnopqrstuvxz"; done
> > > 0 - abcdefghijklmnopqrstuvxz
> > > 1 - abcdefghijklmnopqrstuvxz
> > > 2 - abcdefghijklmnopqrstuvxz
> > > 3 - abcdefghijklmnopqrstuvxz
> > > 4 - abcdefghijklmnopqrstuvxz
> > > 5 - abcdefghijklmnopqrstuvxz
> > > 6 - abcdefghijklmnopqrstuvxz
> > > 7 - abcdefghijklmnopqrstuvxz
> > > 8 - abcdefghijklmnopqrstuvxz
> > > 9 - abcdefghijklmnopqrstuvxz
> > > [EMAIL PROTECTED] root]# for ((i=0;i<10;i++)); do echo "$i -
> > > abcdefghijklmnopqrstuvxz"; done > txt
> > > [EMAIL PROTECTED] root]# sed -n '5p' txt
> > > 4 - abcdefghijklmnopqrstuvxz
> > > [EMAIL PROTECTED] root]# sed -n '5p' txt | cut -c10-15
> > > fghijk
> > > [EMAIL PROTECTED] root]# if [ $(sed -n '5p' txt | cut -c10-15) == fghijk
> ];
> > > then
> > > echo "eh o que eu quero, faco o que?"; else echo "nao eh o que eu
> quero,
> > > nao
> > > faco nada entao, nem precisava desse else.. duh"; fi
> > > eh o que eu quero, faco o que?
> > > [EMAIL PROTECTED] root]# if [ $(sed -n '5p' txt | cut -c10-15) ==
> fghYYYYjk
> > > ];
> > > then echo "eh o que eu quero, faco o que?"; else echo "nao eh o que eu
> > > quero, nao faco nada entao, nem precisava desse else.. duh"; fi
> > > nao eh o que eu quero, nao faco nada entao, nem precisava desse else..
> > > duh
> > > [EMAIL PROTECTED] root]#
> > >
> > > Flavio do Carmo Junior
> > >
> > > On 5/18/07, Sebastiao Gonella <[EMAIL PROTECTED]<segonella%40gmail.com>
> <segonella%40gmail.com>>
> > > wrote:
> > > >
> > > > Explicando melhor Julio...
> > > >
> > > > Na verdade eu tenho que pegar um campo nesta linha, campo esse
> número,
> > > > tratar e gravar novamente na linha. Como a linha conta com varios
> > > valores,
> > > > numeros, etc, eh possivel que quando use o comando "sed
> > > > 's/\(.\{9\}\)CadeiaASerTrocada/\1NovaCadeia/' arquivo" ele ache
> outros
> > > > "CadeiaASerTrocada" e modifique mais de um campo na linha ou ateh
> > > mesmo
> > > > mais
> > > > de uma linha no arquivo. Eu tenho que garantir que estou modificando
> > > um
> > > > pedaço pre-definido na coluna (tipo 12-20) e tambem da linha, isso
> > > para
> > > > garantir a integridade do arquivo.
> > > >
> > > > Obrigado.
> > > >
> > > > Em 18/05/07, Julio C. Neves <[EMAIL PROTECTED]<julio.neves%40gmail.com>
> <julio.neves%40gmail.com>
> > > <julio.neves% 40gmail.com>>
> > > > escreveu:
> > > > >
> > > > > Achei a sua descrição um tanto enrolada, porém deve ser o
> seguinte:
> > > > >
> > > > > sed 's/\(.\{9\}\)CadeiaASerTrocada/\1NovaCadeia/' arquivo
> > > > >
> > > > > Abraços,
> > > > > Julio
> > > > > :wq
> > > > >
> > > > > Em 18/05/07, segonella <[EMAIL 
> > > > > PROTECTED]<segonella%40gmail.com><segonella%40gmail.com><segonella%
> 40gmail.com><segonella%40gmail.com
> > > >>
> > > > > escreveu:
> > > > > >
> > > > > > Pessoal,
> > > > > > Como faço para modificar uma determinada linha, com base no
> numero
> > > da
> > > > > > coluna (tipo C 10-22), quando encontrar uma determinada string??
> > > > > > quando encontrado, preciso modificar a string encontrada na
> linha
> > > sem
> > > > > > modificar o número da linha.
> > > > > > Obrigado.
> > > > > > Gonella
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > > --
> > > > > Abraços,
> > > > > Julio
> > > > > http://www.julioneves.com - Um livro sobre Bash completo e on-line
> > > > > :wq
> > > > >
> > > > > [As partes desta mensagem que não continham texto foram removidas]
> > > > >
> > > > >
> > > > >
> > > >
> > > > --
> > > > --------------------------------------
> > > > Sebastião M. P. Gonella
> > > > Celular: 61-84021512
> > > > [EMAIL PROTECTED] <segonella%40gmail.com> <segonella%40gmail.com>
> <segonella%40gmail.com>
> > > > --------------------------------------
> > >
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> >
> >
> > --
> > --------------------------------------
> > Sebastião M. P. Gonella
> > Celular: 61-84021512
> > [EMAIL PROTECTED] <segonella%40gmail.com>
> > --------------------------------------
>
> --
> --------------------------------------
> Sebastião M. P. Gonella
> Celular: 61-84021512
> [EMAIL PROTECTED] <segonella%40gmail.com>
> --------------------------------------
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Tiago B Peczenyj
Linux User #405772

# cd /pub
# more beer


[As partes desta mensagem que não continham texto foram removidas]

Responder a