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: jimmy
Subject: Re: [shell-script] sed, replace de bloco...
Date: Mon, 1 Jun 2009 08:50:23 -0300
User-agent: Mutt/1.4.2.3i

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."
------------------------------


reply via email to

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