代码之家  ›  专栏  ›  技术社区  ›  David

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

  •  0
  • David  · 技术社区  · 6 年前

    我有包含以下内容的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 回复  |  直到 6 年前
        1
  •  1
  •   RavinderSingh13 Nikita Bakshi    6 年前

    编辑: 现在也按操作添加解决方案。

    sed "s#dummy#12345#"  Input_file
    

    遵循简单 sed 也许能帮到你。

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

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

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

    awk :

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