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

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

Re: [SPAM] Re: [shell-script] Remoção de um bloco de texto de um arquivo


From: [DirectWeb] - Marcio
Subject: Re: [SPAM] Re: [shell-script] Remoção de um bloco de texto de um arquivo
Date: Mon, 05 Jan 2009 16:43:19 -0200
User-agent: Thunderbird 2.0.0.18 (Windows/20081105)


Jimmy,


Eu tenho esse script pronto e utilizo essa linha do sed:


sed "/<VirtualHost/{:a;/<\/VirtualHost/!{N;ba;};/dominio.com.br/d;}"



[]s


Marcio


jimmy escreveu:
On Mon, Jan 05, 2009 at 12:11:18PM -0200, Renato de Oliveira Diogo wrote:
Senhores, bom dia

estou desenvolvendo um script que tem o intuito de remover um bloco de
texto. Um exemplo do arquivo abaixo:
===
<VirtualHost *:80>
    ServerAdmin address@hidden
    DocumentRoot /var/www/vhosts/dominio.com.br/httpdocs
    ServerName  www.dominio.com.br
    ServerAlias dominio.com.br
    ErrorLog /var/www/vhosts/dominio.com.br/statistics/logs/error_log
    CustomLog /var/www/vhosts/dominio.com.br/statistics/logs/access_log common
    CBandUser dominio
...
...
    <IfModule mod_ssl.c>
        SSLEngine off
    </IfModule>
</VirtualHost>

<VirtualHost *:80>
    ServerName subdominio.dominio.com.br
    ServerAdmin address@hidden
    DocumentRoot /var/www/vhosts/dominio.com.br/subdomains/subdominio/httpdocs
    CustomLog /var/www/vhosts/dominio.com.br/statistics/logs/access_log combined
    ErrorLog /var/www/vhosts/dominio.com.br/statistics/logs/error_log
...
...
        Options -Includes -ExecCGI
    </Directory>
</VirtualHost>
===

O bloco que preciso remover inicia com <VirtualHost *:80> e termina
com seu fechamento </VirtualHost>.
Porém, pode haver mais de um bloco de texto que inicia e fecha com
estes. Para diferenciar, o bloco de texto deve conter "ServerName
subdominio.dominio.com.br"

Sei que a remoção eu teria que fazer com o sed, porém como eu pego
essas linhas especificas que me complicou a vida.

Alguem tem alguma ideia, que poderia me ajudar?

[]s
________________________________________________
Renato de Oliveira Diogo

Bacharel em Ciência da Computação
UNESP - Bauru

LPIC1 - Linux Professional Institute Certification - Nível 1

address@hidden
address@hidden

------------------------------------

saudações renato,

não entendi muito bem o que você quis dizer com "remover um bloco de
texto" se era para apagá-lo de dentro do arquivo ou para exibir somente
esse bloco na tela, de qualquer forma aí vai um script simples, espero
que lhe sirva:

#!/usr/bin/sed -f

/<VirtualHost \*:80>/ {
  :a;
  N;
  /<\/VirtualHost>/ bb;
  ba;
};
:b;
/ServerName subdominio\.dominio\.com\.br/!d;

se preferir junte todas as linhas numa só e execute diretamente da linha
de comandos, os ";" já estão nos seus lugares.

------------------------------------

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







reply via email to

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