将 SED 与新行一起使用

Posted

技术标签:

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

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

"some_text"
"version":"1.0",

这是我当前的命令:

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

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

【问题讨论】:

【参考方案1】:

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

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

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

另一种方法是使用:

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

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

【讨论】:

以上是关于将 SED 与新行一起使用的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用 sed 替换文本时保留新行和格式?

如何使用 sed 在特定行上方的 shell 文件中添加新行

如何在bash中将空格替换为新行[重复]

使用 sed / awk / bash 将缺失的行号填充到文件中

Linux脚本在文件中插入新行[重复]

如何将 Spark/Scala RDD 合并/加入到 List 中,以便 RDD 中的每个值与每个 List 项一起获得一个新行