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: Flavio Junior
Subject: Re: [shell-script] Modificando a linha sem modificar sua ardem no arquivo
Date: Fri, 18 May 2007 17:59:25 -0300

isso:
$ sed '10s/^\(.\{8\}\)CadeiaASerTrocada/\1Substituta/' arquivo.txt

NUNCA vai acontecer duas vezes na mesma linha, e se por demonios acontecer,
não vai ser tratado a segunda vez, somente a segunda, por que?

$ sed '10s/^\(.\{8\}\)CadeiaASerTrocada/\1Substituta/' arquivo.txt
Isso trata somente a primeira ocorrencia na linha
$ sed '10s/^\(.\{8\}\)CadeiaASerTrocada/\1Substituta/g' arquivo.txt
Isso trata TODAS ocorrencias que acontecerem. Veja o /g que controla isso.

Não vai nunca acontecer duas vezes por que:
^ = começo da linha
.{8} = oito caracteres qualquer (aqui voce vai por a coluna inicial de
pesquisa)
CadeiaASerTrocada = o que voce quer pesquisar/substituir.

Ou seja, nunca vai ter uma linha que começe com 8 caracteres seguido por
CadeiaASerTrocada DUAS vezes.. Cada linha só começa uma vez.

Qualquer coisa a lista NOS ajuda...

Flavio do Carmo Junior

On 5/18/07, Sebastiao Gonella <address@hidden> wrote:
>
>   Eu entendi Flávio, obrigado...
> Mas o problemas eh o seguinte... quando eu encontro no arquivo uma linha
> que
> eu preciso trata-la, me desculpe pela ignorancia, mas nao sei o numero
> dela.
> O que tenho que garantir eh que eu trate aquela linha limitando o numera
> da
> coluna x ateh y, isso p/ garantir que a modificacao seja p/ aquele valor.
> Mesmo que eu descubra a linha da string, pode ser q eu tenha mais de uma
> cadeia de string igual naquela linha, entendeu? por isso minha dificuldade
> Obrigado..
>
> Em 18/05/07, Flavio Junior <address@hidden <billpp%40gmail.com>>
> escreveu:
> >
> > Especifique a linha que deseja (a tal que voce chama de trabalhando) no
> > sed...
> >
> > $ sed '10s/\(.\{8\}\)CadeiaASerTrocada/\1Substituta/' arquivo.txt
> >
> > 10 no caso é o numero da linha q eu quero trabalhar..
> >
> > Flavio do Carmo Junior
> >
> > On 5/18/07, Sebastiao Gonella 
> > <address@hidden<segonella%40gmail.com><segonella%40gmail.com>>
> > wrote:
> > >
> > > Julio, obrigado pela resposta...
> > > O problema eh que tenho medo de que quando use o comando ele encontre
> > mais
> > > de uma linha com "CadeiaASerTrocada" e modifique outras linhas. A
> idéia
> > eh
> > > garantir que modifique apenas aquela linha que estou trabalhando.
> > > 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>
> --------------------------------------
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


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



reply via email to

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