[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/
+--------------------------------------------+