linux - 如何用 sed 的变量替换单引号字符串?
问题描述
我正在尝试替换文件中的某些文本,如标题中所述。我尝试了什么:
newdir=/dir/to/my/file
sed -i "s/'MyDir'/${newdir}/g" myconf.conf
上面的命令给出了这个错误:
's' 的未知选项
解决方案
问题是它$newdir
包含/
字符,所以你的sed
命令最终看起来像s/'MyDir'//dir/to/my/file/g
,这不起作用——第一个/
有效地终止了你的sed
表达式,其他的都是垃圾。
幸运的是,sed
让我们使用任何字符作为s
命令的分隔符,因此您可以改为:
sed -i "s|'MyDir'|${newdir}|g" myconf.conf
推荐阅读
- c# - 如果“值类型”变量仍在被另一个线程使用(由“ref”传递),那么在离开方法范围时如何从堆栈中释放它?
- haskell - Haskel - Gloss:平铺表(或如何从图片中提取区域)
- google-apps-script - 用于显示/隐藏工作表的按钮中的 Google Apps 脚本
- java - 我需要正确发送请求,但我不知道如何从对象中获取所需的值
- php - 根据作者 ID 更改帖子 URL
- android - Flutter 如何获取可迭代的 .toList() 列表的长度?
- git - 从 git 分支的历史记录中删除某些提交
- python - Python Pandas - 如何按具有多个值的多列中的值按计数分组
- flutter - 一旦使用 bloc 触发事件,底部工作表就会重复显示
- python - 如何使用列表理解创建这个嵌套列表?