json - 使用 jq 将 JSON {"k1":"v1","k2":"v2"} 转换为 CSV: v1,v2
问题描述
我有一个带有类似行的 JSON 文件in.txt
,{"k1":"v1","k2":"v2"}
我想从中创建一个out.txt
带有行的 CSV 文件v1,v2
。JSON 文件可能包含超过 10 个键/值对,因此我更喜欢不需要在输入命令中指定每个键的解决方案。
到目前为止,我发现了这个命令:
jq -r '[.[]] | @csv' in.txt > out.txt
它产生带有行的输出文件:"v1","v2"
. 我怎样才能摆脱双引号?
更新:我可以使用以下方法删除双引号sed
,但我仍然有兴趣使用 jq 找到解决方案:
jq -r '[.[]] | @csv' in.txt | sed -e 's/\"//g' > out.txt
解决方案
如果您确定输入数据不包含 a,
您可以使用join(",")
.
假设你有这个输入文件:
{"k1":"v1","k2":"v2"}
{"k1":"v3","k2":"v4"}
{"k1":"v5","k2":"v6"}
你可以join
这样使用:
jq -r 'values|join(",")' input.file
输出:
v1,v2
v3,v4
v5,v6
推荐阅读
- mongodb - 找不到命令:mongo,安装后(OS X)
- python - 在elasticsearch dsl中重置索引名称
- haxeflixel - 从多行 flxText 中删除一行
- c - 尝试编译 HPCC 基准时无法链接到 BLAS/ATLAS
- jquery - 在悬停时更改自定义鼠标
- c++ - G++ 链接器忽略静态库
- angular - Angular 8 上的 ExpressionChangedAfterItHasBeenCheckedError 和 ngOnInit 上调用的方法
- ios - 为什么我收到错误 Error Domain=NEHotspotConfigurationErrorDomain Code=11 "
“? - python - 使用间隙和边缘边界进行切片的 numpy 语法
- c# - 如何在 ASP.NET 中使用列表和 SQL Server 获取数据