gpt4 book ai didi

regex - egrep 匹配多行

转载 作者:行者123 更新时间:2023-11-29 09:46:44 26 4
gpt4 key购买 nike

我在多个主机上有多个 Apache vHost 配置。我正在尝试编写一个 Bash 脚本,它将遍历每个主机并搜索 .conf每个文件,拉出第一个(只有第一个)<VirtualHost>堵塞。我试过写一个正则表达式来匹配它,但它不起作用。这是我试过的代码:

    #!/bin/bash
egrep -o '(\<VirtualHost\>)(.*)(\<\/VirtualHost\>)' -m1

.*不匹配换行符,我什至试过这个:

    #!/bin/bash
egrep -o '(\<VirtualHost\>)(.*[\S]*)(\<\/VirtualHost\>)' -m1

我还是一无所获。 :-(

我不明白我在这里做错了什么。这是我尝试匹配的数据示例:

    <VirtualHost apache-frontend:80>
ServerAdmin mysite@domain.com
ServerName domain.com
DocumentRoot /path/to/my/doc/root

RewriteEngine On
Include include.d/global/rewrite.conf
RewriteRule ^(.*)$ http://www.domain.com$1 [R=301,L]
</VirtualHost>

<VirtualHost apache-frontend:80>
ServerAdmin mysite@domain.com
ServerName domain.com
DocumentRoot /path/to/my/doc/root

RewriteEngine On
Include include.d/global/rewrite.conf
RewriteRule ^(.*)$ http://www.domain.com$1 [R=301,L]
</VirtualHost>

<VirtualHost apache-frontend:80>
ServerAdmin mysite@domain.com
ServerName domain.com
DocumentRoot /path/to/my/doc/root

RewriteEngine On
Include include.d/global/rewrite.conf
RewriteRule ^(.*)$ http://www.domain.com$1 [R=301,L]
</VirtualHost>

最佳答案

这个 oneliner 只从配置文件中提取第一个 VirtualHost block :

awk '/<VirtualHost/,/<\/VirtualHost>/{print $0} /<\/VirtualHost>/{exit}' < vhostconf

关于regex - egrep 匹配多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35930359/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com