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

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

Re: [shell-script] Modificando a linha sem modificar sua ardem no arquiv


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Modificando a linha sem modificar sua ardem no arquivo
Date: Mon, 21 May 2007 16:39:50 -0300

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 <address@hidden> 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 <address@hidden<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 <address@hidden <billpp%40gmail.com>>
> escreveu:
> > >
> > > vamos complicar/explicar as coisas...
> > > [root@gandalf 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
> > > [root@gandalf root]# for ((i=0;i<10;i++)); do echo "$i -
> > > abcdefghijklmnopqrstuvxz"; done > txt
> > > [root@gandalf root]# sed -n '5p' txt
> > > 4 - abcdefghijklmnopqrstuvxz
> > > [root@gandalf root]# sed -n '5p' txt | cut -c10-15
> > > fghijk
> > > [root@gandalf 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?
> > > [root@gandalf 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
> > > [root@gandalf root]#
> > >
> > > Flavio do Carmo Junior
> > >
> > > On 5/18/07, Sebastiao Gonella <address@hidden<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 <address@hidden<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 
> > > > > <address@hidden<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
> > > > address@hidden <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
> > address@hidden <segonella%40gmail.com>
> > --------------------------------------
>
> --
> --------------------------------------
> Sebastião M. P. Gonella
> Celular: 61-84021512
> address@hidden <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]



reply via email to

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