【发布时间】:2021-09-01 11:47:44
【问题描述】:
我有一些 JSON 文件,我需要在 } 之后和新行之前添加一个 ,。文件的当前格式如下所示:
"some_text"}
{"version":"1.0",
这是我当前的命令:
sed -i '.json' 's/\}\n/\},\n/g' file.
在文件内进行搜索和替换时,正则表达式有效,但我无法弄清楚批量编辑所需的命令行
【问题讨论】:
我有一些 JSON 文件,我需要在 } 之后和新行之前添加一个 ,。文件的当前格式如下所示:
"some_text"}
{"version":"1.0",
这是我当前的命令:
sed -i '.json' 's/\}\n/\},\n/g' file.
在文件内进行搜索和替换时,正则表达式有效,但我无法弄清楚批量编辑所需的命令行
【问题讨论】:
这可能对你有用(GNU sed):
sed -i 's/}$/&,/' file
Sed 用换行符分隔它呈现给模式空间的行,因此行尾使用锚点 $ 表示换行符之前的位置,因此正则表达式 }$ 表示 }\n。
另一种方法是使用:
sed -zi 's/}\n/},\n/g' file
这会将文件拖入内存,并且全局替换替换匹配项。
【讨论】: