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

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

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


From: jimmy
Subject: Re: [shell-script] Remoção de um bloco de texto de um arquivo
Date: Mon, 5 Jan 2009 13:54:20 -0200
User-agent: Mutt/1.4.2.3i

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.


reply via email to

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