【问题标题】:Using SED with new lines将 SED 与新行一起使用
【发布时间】:2021-09-01 11:47:44
【问题描述】:

我有一些 JSON 文件,我需要在 } 之后和新行之前添加一个 ,。文件的当前格式如下所示:

"some_text"}
{"version":"1.0",

这是我当前的命令:

sed -i '.json' 's/\}\n/\},\n/g' file.

在文件内进行搜索和替换时,正则表达式有效,但我无法弄清楚批量编辑所需的命令行

【问题讨论】:

    标签: json sed


    【解决方案1】:

    这可能对你有用(GNU sed):

    sed -i 's/}$/&,/' file
    

    Sed 用换行符分隔它呈现给模式空间的行,因此行尾使用锚点 $ 表示换行符之前的位置,因此正则表达式 }$ 表示 }\n

    另一种方法是使用:

    sed -zi 's/}\n/},\n/g' file
    

    这会将文件拖入内存,并且全局替换替换匹配项。

    【讨论】:

      猜你喜欢
      • 2012-02-29
      • 2018-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-03
      • 2014-04-19
      • 1970-01-01
      • 2015-10-01
      相关资源
      最近更新 更多