【发布时间】:2019-11-09 04:21:43
【问题描述】:
我正在尝试使用 gnu sed 在每个方括号 [/] 或波浪括号 {/} 之后添加一个新行字符,但右括号 ] 会造成麻烦:
$ sed 's,\([\[\]{}]\),\1\n,g' test.json
{ "file1": {hello world}, "file2": [1,2,3,4,] }
不匹配任何字符。如果我省略右大括号,它会匹配所有内容(但右大括号):
$ sed 's/\([\[{}]\)/\1\n/g' test.json
{
"file1": {
hello world}
, "file2": [
1,2,3,4,] }
我可以做些什么来逃避右大括号以使这个正则表达式匹配?
【问题讨论】:
-
你的预期输出是什么?
-
你确定你没有重新发明 JSON 漂亮的打印,比如
jq . <<< '{ "file1": {hello world}, "file2": [1,2,3,4,] }'?旁注:您的 JSON 无效,结尾有逗号。