bash - sed 未终止 `s' 命令

标签 bash sed sh

我有这个 bash 代码

REPLACEMENT="s:define('CP_DIRECTORY.*:define('CP_DIRECTORY), ('"${NEWLOCATION}"');:;"
sed -i $REPLACEMENT $INITDATA;

返回

sed: -e expression #1, char 9: unterminated `s' command

我正在尝试替换 initdata.php 中如下所示的一行:

define( 'CP_DIRECTORY', 'admin' );

到此

define( 'CP_DIRECTORY', 'AJgBCecvPBUnPZCLvKukyzfehWrsF5wI' );

最佳答案

在整个 sed 命令两边加上单引号:

sed -i 's:AdminCP = .*:AdminCP = "/home/pi/forums/AJgBCecvPBUnPZCLvKukyzfehWrsF5wI";:' forums/initdata.php

否则,该命令将按空格分开。另外,您需要在星号前加一个点,否则您只是在说“零个或多个空格”。

关于bash - sed 未终止 `s' 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11425340/

相关文章:

bash - 在 bash 中按特定顺序打印文件内容

awk 前置和附加文件行

shell - 如何在 Unix 中同时搜索并执行两个脚本?

bash - 自定义 bash 完成输出 : each suggestion on a new line

perl - 如果特定列包含零,如何删除整行?

linux - Linux下如何判断自己是否在无线接口(interface)上

bash - 是否可以使用命令行确定 YARN 中当前事件的调度程序插件?

linux - 用于处理两个文件并循环进行挂载点检查的 Bash 脚本

bash - 如何在 windows-subsystem-for-linux 上保持 windows $PATH when 'sudo su -'

bash - 循环不循环