我有一个file
,实际上是 json 文件。如何在除最后一行之外的每一行末尾添加逗号?例如:
{"a":1, "b":1, "c":2}
{"a":3, "b":3, "c":1}
{"a":1, "b":2, "c":3}
我想要的是:
{"a":1, "b":1, "c":2},
{"a":3, "b":3, "c":1},
{"a":1, "b":2, "c":3}
答案1
您可以使用awk
:
awk 'NR > 1{print line","}{line=$0;}END{print $0}' jsonfile
答案2
您可以使用sed
:
sed '$n;s/$/,/' file
- 这
$n;
意味着如果它是最后一行,则继续。 - 否则它会
,
在行尾添加一个。 - 如果添加
-i
标志(不是 POSIX),文件将被就地编辑。
如果必须是awk
:
awk 'NR>1{print p} {p=$0","}END{print}' file1
- 将行的内容存储在变量中
p
。 - 除了最后一行之外,该变量都会被打印。
- 当输入结束时,最后一行将按原样打印。
答案3
答案4
原来的文件实际上是换行符分隔的 JSON(NDJSON)。
我建议安装而不是使用 GNU 工具json来自 NPM。
# say the file is test.log
$ json -f test.log -g
[
{
"a": 1,
"b": 1,
"c": 2
},
{
"a": 3,
"b": 3,
"c": 1
},
{
"a": 1,
"b": 2,
"c": 3
}
]