如何使用sed将文件中的字符串替换为另一个用单引号引起来的字符串?

时间:2018-06-22 17:24:19

标签: string sed replace yaml double-quotes

我有包含内容的yaml文件:

dummy:
  key1: value1
  key2: value2

我想用sed将dummy替换为'dummy'

我正在尝试:

sed -i '.yaml' 's/dummy/"'dummy'"/g' ~/Desktop/test.yaml

我知道

"dummy":
  key1: value1
  key2: value2

正如您所看到的,我得到一个用双引号括起来的虚拟字符串...

事实上,我要 单引号 包围假人

我如何获得? :

'dummy':
  key1: value1
  key2: value2

1 个答案:

答案 0 :(得分:1)

编辑: 现在也按照OP添加解决方案。

sed "s#dummy#12345#"  Input_file

遵循简单的sed可能会对您有所帮助。

sed "s#dummy#'&'#"  Input_file

如果要通过备份Input_file将更改保存到Input_file本身,请使用以下命令。

sed  -i.bak "s#dummy#'&'#"  Input_file

awk中:

awk '{sub("dummy","\047&\047")} 1'  Input_file