You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash正则表达式:提取WordPress配置文件中引号包裹的数据库信息

适配所有引号格式的WordPress数据库信息提取方案

以下几种命令方案均可处理wp-config.php中DB_NAME定义的单引号、双引号、混合引号场景:

1. GNU grep(Perl正则模式)

这是最简洁的方案,利用Perl正则的捕获和正向预查精准提取:

DBNAME=$(grep -Po "define\(\s*(['\"]?)DB_NAME\1\s*,\s*(['\"])\K.*?(?=\2\s*\);)" wp-config.php)
  • 逻辑:\K忽略前面的匹配内容,(?=\2)正向预查匹配闭合的对应引号,确保提取的是引号内的数据库名。

2. awk(跨平台兼容)

如果你的环境没有GNU grep,awk方案兼容性更好:

DBNAME=$(awk '/define.*DB_NAME/ {
    for (i=1; i<=NF; i++) {
        if ($i ~ /^[\x27\x22]/ && $i ~ /[\x27\x22]$/) {
            gsub(/^[\x27\x22]|[\x27\x22]$/, "", $i)
            print $i
            exit
        }
    }
}' wp-config.php)
  • 逻辑:定位到DB_NAME的行后,遍历字段找到首尾带引号的项,去除引号后输出,找到即退出避免冗余匹配。

3. sed正则替换

用sed的分组替换直接提取目标内容:

DBNAME=$(sed -n "s/^define\s*(\s*['\"]DB_NAME['\"]\s*,\s*\(['\"]\)\(.*\)\1\s*);/\2/p" wp-config.php)
  • 逻辑:捕获第二个参数的引号类型(\1),提取引号包裹的数据库名(\2),自动适配单双引号及混合场景。

内容的提问来源于stack exchange,提问作者Peter Griffin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 20:57:27