【发布时间】:2015-03-04 10:40:19
【问题描述】:
我正在尝试将用于获取我们网站访问者的(可能)真实 IP 的配置插入到他们各自的 wp-config.php 中,但我遇到了涉及大量特殊字符的问题.
我计划将此添加到一个 bash 脚本中,该脚本可以快速启动新的 Wordpress 安装,但我必须在每次安装后手动添加该行。
这是配置...
$_SERVER['REMOTE_ADDR'] = preg_replace('/^([^,]+).*$/', '\1', $_SERVER['HTTP_X_FORWARDED_FOR']);
wp-config.php 的片段:
$table_prefix = 'wp_';
define('WPLANG', '');
/* That's all, stop editing! Happy blogging. */
我原本以为我可以在“define('WPLANG', '');”下的空白处插入配置使用 sed 就像我对其他类似任务所做的那样......
find="define('WPLANG', '');"
replace="$_SERVER['REMOTE_ADDR'] = preg_replace('/^([^,]+).*$/', '\1', $_SERVER['HTTP_X_FORWARDED_FOR']);"
sed "s/$find\n\n/$find\n$replace/"
...但是特殊字符正在抛弃一切。我尝试了许多不同的引用和转义方式,但我没有任何运气。
【问题讨论】:
标签: wordpress bash replace sed scripting