Bra*_*rad 15 linux apache-http-server bash sed ubuntu
我正在尝试使用 Bash 脚本自动配置 Ubuntu Vagrant 框。一切都很好,但我在配置 Apache 以允许覆盖.htaccess文件时遇到了困难。在我的配置文件中,有以下块:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
我需要做的就是替换AllowOverride None为AllowOverride all. 这似乎是 的任务sed,但<Directory>在此配置文件中还有其他块我不想允许覆盖。
当特定字符串出现在两个其他特定字符串之间时,如何使用 sed 将特定字符串替换为新字符串?
换句话说,AllowOverride None只有当它出现在<Directory /var/www/>和之间时,我该如何替换</Directory>?
我可以使用以下命令来获取我感兴趣的块:
sed -n '/<Directory \/var\/www\/>/,/<\/Directory>/p' 000-default
Run Code Online (Sandbox Code Playgroud)
sus*_*tus 17
sed 支持这种形式的模式范围:
sed '/startpattern/,/endpattern/ <sed-commands>' file
Run Code Online (Sandbox Code Playgroud)
例如:
sed '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride all/' httpd.conf
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4084 次 |
| 最近记录: |