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

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

Re: [shell-script] substituição condicional - one liner


From: Helton Moraes
Subject: Re: [shell-script] substituição condicional - one liner
Date: Wed, 9 Jun 2010 18:20:12 -0300

Pelo que entendi, somente substituir address1 por address2 não seria
suficiente, né? Digo, não se sabe quais arquivos contêm um ou outro, e é
possível que um mesmo arquivo contenha as duas ocorrências, seria isso?

Então (não sei fazer, fico só no conceito da ideia), acho que teria que
procurar uma ocorrência do segundo DESDE que precedida pela ocorrência do
primeiro, ou seja, somente substituir address1 caso ele seja precedido, na
linha anterior, por address2.

Assim sendo, o sed precisaria de uma expressão regular extendida da forma:

('regex contendo address2')'blah'(?<='regex contendo address1')

ou seja, só seria casado o segundo parentese caso existisse o primeiro.

As questões seriam:

   1. Como fazer isso considerando ocorrencias em multiplas linhas?
   2. O que colocar no lugar de 'blah'?
   3. Como construir as regexes de forma que casem tudo e somente aquilo que
   precisam?
   4. Que opções do sed deveriam ser usadas para que esse tipo de regex
   (extendida?) funcione?

Espero ter ajudado mais do que complicado, também tou aprendendo...

Helton



2010/6/9 MrBiTs <address@hidden>

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> On 06/09/2010 04:37 PM, Eri Ramos Bastos wrote:
> > <xsl:variable name="address1">
> > <xsl:value-of select="statementheader/address1"/>
> > </xsl:variable>
> >
> > E alguns deles contém também:
> >
> > <xsl:variable name="address2">
> > <xsl:value-of select="statementheader/address1"/>
> > </xsl:variable>
>
> Sei lá... uma rapidinha suja:
>
> $ cat eri.txt
> <xsl:variable name="address1">
> <xsl:value-of select="statementheader/address1"/>
> </xsl:variable>
>
> <xsl:variable name="address2">
> <xsl:value-of select="statementheader/address1"/>
> </xsl:variable>
>
> $ sed -e '/address2/,$s/address1/address2/' eri.txt
> <xsl:variable name="address1">
> <xsl:value-of select="statementheader/address1"/>
> </xsl:variable>
>
> <xsl:variable name="address2">
> <xsl:value-of select="statementheader/address2"/>
> </xsl:variable>
>
> Resolve ?
>
> - --
>
> Um abraço
>
> .0. MrBiTs - address@hidden
> ..0 GnuPG  -
> http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x6EC818FC2B3CA5AB
> 000 http://www.mrbits.com.br
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
>
> iQEcBAEBCAAGBQJMD/CiAAoJEG7IGPwrPKWrchIH/2q9qH2xp6s5QqaE2Dq1XcR5
> MSBS2gIIkBooQBdUkd6B5hSINNb8dQeDHRssIZLChs8mwbTbJbOKWlCAfKy4Znwo
> N6CWFmTRPt64QCy0zmxbtRYCv8cFt4mHaQ8vlzJd9b1eE1z9cSwZf9u+bbpNawzu
> avc3Q8TZZvn3sz9iXif1wa8sj06SVxw48ln3gsNVRoUByrC7RbK8Z0YQabaB31AF
> 4bKfwEIzRarvVyzccwIObGlj8UpllH1oR1Ee0A4Lw9j/S2BZ2sI0I5RPq2iaNWAl
> w2/XNIMTbz2cSe3susiC8Dmg0J70jNBnId2AuifQjo1in4MzTWr3jY62ehFjCuo=
> =LtkV
> -----END PGP SIGNATURE-----
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


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



reply via email to

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