linux - 使用 sed 搜索和替换字符串

标签 linux bash sed

我有一个像这样的 sed 命令,用于搜索和替换文件中的字符串:

sed -i -e 's/`db1`./`db2`./g' result/files1.sql

将文件中的 db1 替换为 db2 效果很好:result/files1.sql

但是,当我将其更改为 bash 和变量格式时,它不起作用。

sed -i -e "s/`${mydbname}`./`${mydbname2}`./g" "${mypath}"

我收到如下错误:

./mycoolscript: line 241: db1: command not found
./mycoolscript: line 241: db2: command not found

任何解决方案都会很棒。

最佳答案

如果 是您需要替换的东西,您将需要转义 。在这里

sed -i -e "s/\`${mydbname}\`./\`${mydbname2}\`./g" "${mypath}"

关于linux - 使用 sed 搜索和替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19419896/

相关文章:

Linux 脚本显示所有登录学生的姓名和他们的模拟号码登录

linux - 交换标准输入和标准错误后 grep 将无法工作

regex - 在多个空格后替换单词

c - 在c中合并和排序结构数组

python - OpenCV 和 python/virtualenv?

java - 尝试通过 ant 脚本运行 Java 服务器时无法分配请求的地址

linux - 查看环境变量 PATH 的文件夹中是否包含命令

bash - 为什么 unix 后台进程有时会在我退出 shell 时死掉?

shell - 使用 sed 计算反向引用

linux - 如何从文本文件生成制表符分隔文件?