我有一个很大的 json 表,我需要在表上的 json 对象之间添加通信。我无法手动执行此操作。文件结构如下:
[{"host"
}
{"host"
}
{"host"
}
]
我需要使用 sed
将其修改为:
[{"host"
},
{"host"
},
{"host"
}
]
我执行了以下命令。我没有收到任何错误。但文件中没有任何变化:
sed -i 's/}{"host"/},{"host"/g' result.json
我怀疑我应该考虑 }{ 是用换行符分隔的吗?我尝试在命令中添加 \n
但也没有用。
最佳答案
使用 GNU awk 实现多字符 RS:
$ awk -v RS='^$' -v ORS= '{gsub(/}\n{/,"},\n{")}1' file
[{"host"
},
{"host"
},
{"host"
}
]
或者如果您愿意:
$ awk -v RS='}\n{' '{ORS=(RT ? "},\n{" : "")} 1' file
[{"host"
},
{"host"
},
{"host"
}
]
或使用 GNU sed for -z
并将 \n
识别为换行符:
$ sed -z 's/}\n{/},\n{/g' file
[{"host"
},
{"host"
},
{"host"
}
]
关于json - 在 json 文件中的对象之间添加逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51920957/