我有一个文本文件,其中包含大量的JSON对象,并且尚未使用新行或对象之间的任何分隔符创建它.
目前我正在使用:
perl -e '$/ = "}{"; print "$_\n" while <>' file.txt > out.txt
Run Code Online (Sandbox Code Playgroud)
但这会导致格式错误的数据,因为当文件在新行上拆分时,JSON对象将丢失开头,{因为新行将放置在{字符后面.
有没有办法在}{匹配之间插入新的行替换}\n{.
该文件非常大,所以我不能手动执行.
不必在Perl中,可以在更适合任务的东西中.
不要只是print.在}和之间替换换行符{.现在while需要一个块,因为上一次s///失败,所以这样做s/// && print while <>不起作用.
$ cat json.json
{"foo":"bar"}{"bar":"baz"}{"bo":"shizzle"}
$ perl -e '$/ = "}{"; while (<>) { s/\}\{$/}\n{/; print; }' json.json
{"foo":"bar"}
{"bar":"baz"}
{"bo":"shizzle"}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
281 次 |
| 最近记录: |