我想用sed在我的Wordpress
文件中添加一些PHP代码。但在添加时,sed忽略了我所添加的文本中的
wp-config.php
。
'
我想加上这几行
if ( !empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
$forwarded_ips = explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] );
$_SERVER['REMOTE_ADDR'] = $forwarded_ips[0];
unset( $forwarded_ips );
在php
标签开始后。
这是我正在使用的sed命令。
sed -i '/<?php/a "if ( !empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {\n\t$forwarded_ips = explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] );\n\t$_SERVER['REMOTE_ADDR'] = $forwarded_ips[0];\n\tunset( $forwarded_ips );\n}"' wp-config.php
一切都进行得很完美,但sed忽略了单引号,'
。
我的输出看起来如下。
if ( !empty( $_SERVER[HTTP_X_FORWARDED_FOR] ) ) {
$forwarded_ips = explode( ,, $_SERVER[HTTP_X_FORWARDED_FOR] );
$_SERVER[REMOTE_ADDR] = $forwarded_ips[0];
unset( $forwarded_ips );
但我想要一些像下面这样的东西。
if ( !empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
$forwarded_ips = explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] );
$_SERVER['REMOTE_ADDR'] = $forwarded_ips[0];
unset( $forwarded_ips );
Sed是忽略了字符'
,并为该字符添加了一个空白空间。
你遇到问题的原因是你在 sed 命令周围使用了单引号,而且在你试图插入的字符串里面也使用了单引号。这意味着你的命令的第一部分是单引号,后面是引号外的
字符串,等等。
HTTP_X_FORWARDED_FOR
试试这个。
sed -i -f script.sed wp-config.php
其中
包含以下内容。script.sed