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

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

Re: [shell-script] sed, replace de bloco...


From: Jorge Pereira
Subject: Re: [shell-script] sed, replace de bloco...
Date: Mon, 1 Jun 2009 10:41:50 -0300

Cara,

    Era justamente isto o que eu precisava! a solução que Jimmy deu
funciona perfeitamente porém caso alguém tenha outras formas e queira
sugerir apenas por carater de curiosidade será bem vindo!

[]s

On 6/1/09, jimmy <address@hidden> wrote:
> On Sun, May 31, 2009 at 11:12:29AM -0300, Jorge Pereira wrote:
>> Hello!
>>
>> Vamos lá novamente! talvez eu que não tenha sido tão claro! o problema não
>> e
>> tão simples assim....  :)
>> --------
>> Bem,
>>
>> Eu tenho em um determinado texto tal trecho abaixo.
>>
>> [jpereira@jaspion ~]$ cat /tmp/a
>> INSTALL ( a b
>> c
>> d
>> )
>>
>> ADD_LIBRARY(mylib SHARED
>>             A.cpp
>>             B.cpp
>>             C.cpp
>>            )
>>
>> HEHE_LIBRARY(mylib SHARED
>>             A.cpp
>>             B.cpp
>>             C.cpp
>>            )
>> [jpereira@jaspion ~]$
>> e preciso que fique
>>
>> #ADD_LIBRARY(mylib SHARED
>>             A.cpp
>>             B.cpp
>>             C.cpp
>>            )#
>>
>> tentei algo como
>>
>> [jpereira@jaspion ~]$ cat /tmp/a
>> INSTALL ( a b
>> c
>> d
>> )
>>
>> ADD_LIBRARY(mylib SHARED
>>             A.cpp
>>             B.cpp
>>             C.cpp
>>            )
>>
>> HEHE_LIBRARY(mylib SHARED
>>             A.cpp
>>             B.cpp
>>             C.cpp
>>            )
>> [jpereira@shinobi dir]$ cat /tmp/a | sed '/^ADD_LIBRARY/,/)/{
>> s/\(.*\)/#\1#/g}'
>> INSTALL ( a b
>> c
>> d
>> )
>>
>> #ADD_LIBRARY(mylib SHARED#
>> #            A.cpp#
>> #            B.cpp#
>> #            C.cpp#
>> #           )#
>>
>> HEHE_LIBRARY(mylib SHARED
>>             A.cpp
>>             B.cpp
>>             C.cpp
>>            )
>> [jpereira@jaspion ~]$
>>
>> tem que levar em consideração que pode existir enters ou não entre ADD e
>> ),
>> ou seja!
>>
>> [jpereira@jaspion ~]$ cat /tmp/a
>> INSTALL ( a b
>> c
>> d
>> )
>>
>> *ADD_LIBRARY(mylib SHARED A.cpp B.cpp C.cpp)*
>>
>> HEHE_LIBRARY(mylib SHARED
>>             A.cpp
>>             B.cpp
>>             C.cpp
>>            )
>> [jpereira@jaspion ~]$
>>
>> como pode ser
>>
>> [jpereira@jaspion ~]$ cat /tmp/a
>> INSTALL ( a b
>> c
>> d
>> )
>> *
>> ADD_LIBRARY(mylib SHARED
>>             A.cpp
>>             B.cpp
>>             C.cpp
>>            )*
>>
>> HEHE_LIBRARY(mylib SHARED
>>             A.cpp
>>             B.cpp
>>             C.cpp
>>            )
>> [jpereira@jaspion ~]$
>>
>> tenho que adicionar algo no inicio e fim.... Alguém tem alguma sugestão!?
>>
>> thanks!
>> --
>> Regards,
>> +--------------------------------------------+
>> Jorge Pereira,
>> http://blog.jorgepereira.com.br/
>> +--------------------------------------------+
>
>
> creio que o uso de um laço seja mais adequado para fazer as alterações
> que deseja, exemplo:
>
>   sed '/^ADD_LIBRARY/{s/^/#/;:loop;n;s/)\s*$/&#/;t;bloop}' arquivo
>
>
> --
> "Não manejo bem as palavras
> Mas manipulo bem as strings."
> ------------------------------
>


-- 
--
Regards,
+--------------------------------------------+
 Jorge Pereira,
 http://blog.jorgepereira.com.br/
+--------------------------------------------+


reply via email to

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