sed excluir linhas httpd.conf

3

Eu tenho um arquivo de configuração httpd do qual eu gostaria de excluir o bloco inteiro:

<Directory "/var/www/html">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
AllowOverride None

#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>

de <Directory "/var/www/html"> ao fechamento </Directory> .

Eu tentei:

 sed '/-<Directory "\/var\/www\/html">/,/-<\/Directory>/d' /etc/httpd/conf/httpd.conf

mas sem sucesso.

    
por user2944635 17.08.2015 / 14:56

2 respostas

8

Seu comando não funciona devido aos traços antes das instruções <Directory ...> (e </Directory> ). Isso deve funcionar:

sed '/<Directory "\/var\/www\/html">/,/<\/Directory>/d' /etc/httpd/conf/httpd.conf

Além disso, para tornar isso mais legível, convém usar outro caractere como delimitador do que / , por exemplo, # , assim;

sed '\#<Directory "/var/www/html">#,\#</Directory>#d' /etc/httpd/conf/httpd.conf
    
por 17.08.2015 / 15:15
2

- não é necessário porque seu arquivo não tem - antes de <Directory ... .

Tente isto:

sed '/<Directory "\/var\/www\/html">/,/<\/Directory>/d' filename
    
por 17.08.2015 / 15:12

Tags