php - SED 命令 : won't insert the string I want

标签 php linux bash shell sed

我想在“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/

相关文章:

android - 在 Android : "not found" 上安装预构建的二进制文件

linux - awk 中的搜索模式

linux - shell脚本中ls和grep命令 "not found"错误

php - 在 codeigniter 中生成多个结果

php - MySQL 查询 WordPress 数据库

c++ - SDL 无法显示图像?

linux - 需要深入了解编写操作系统 Shell 类(class)

bash - 如何使用 getopts 处理多个输入文件参数

php - 选择多个复选框时出现问题

php - 如何使用 node_load 并呈现上下文链接