【发布时间】:2016-06-28 11:21:37
【问题描述】:
我想使用 sed 将一些 PHP 代码添加到我的 Wordpress 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 );
}
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 忽略字符 ' 并为该字符添加一个空格。
【问题讨论】:
标签: php regex wordpress bash sed