我想在“sed -i”命令中写入以下代码。
我正在尝试以下命令:
sed -i '2s/^/if \(\$_SERVER[\"REQUEST_URI\"\] == \'/site/template.php\'\) \{\$name=mysql_result\(\$result,\$i+2,\"Name\"\);\$auth=mysql_result\(\$result,\$i+2,\"Author\"\);\$date=mysql_result\(\$result,\$i+2,\"Date\"\);body=mysql_result\(\$result,\$i+2,\"Content\"\);\}\n' ../site/written.php
这是一段代码:
if ($_SERVER["REQUEST_URI"] == '/site/template.php') {
$name=mysql_result($result,$i+1,"Name");
$auth=mysql_result($result,$i+1,"Author");
$date=mysql_result($result,$i+1,"Date");
$body=mysql_result($result,$i+1,"Content");
}
当我这样做时,它不会在 shell 中插入和获取“>”东西。
那么我应该怎么做呢?
最佳答案
将其放在双引号中,以获得第一个结果。
更多细节:同样在 /site/template
中转义 /
。还要在 \n
中转义 \\n
。添加 /
以结束最终确定搜索表达式。
sed -i "2s/^/if \(\$_SERVER[\"REQUEST_URI\"\] == \'\/site\/template.php\'\) \{\$name=mysql_result\(\$result,\$i+2,\"Name\"\);\$auth=mysql_result\(\$result,\$i+2,\"Author\"\);\$date=mysql_result\(\$result,\$i+2,\"Date\"\);body=mysql_result\(\$result,\$i+2,\"Content\"\);\}\\n/" ../site/written.php
关于php - SED 命令 : won't insert the string I want,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16885777/