[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."
------------------------------
- Re: [shell-script] sed, replace de bloco...,
jimmy <=