cat "$FileName" | jq --sort-keys 'map({"author_id": .author.id,"author": .author.name, "badge": .author.badges[0].title, "message", "timestamp", "time_in_seconds", "time_text"})' > "$TargetName"如果源JSON中没有"time_in_seconds": null,则使用"time_in_seconds"生成输出。如何消除这种情况:
发布于 2022-01-15 00:49:16
若要删除一个字段(如果为null ),请使用.time_in_seconds |= select(.)。
若要删除所有属于null的字段,请使用.[] |= select(.)。
在您的map末尾添加以下内容,如下所示:
jq 'map({…} | .[] |= select(.))'注意:这还将删除值为false的字段。如果希望限制为null,请使select(.)更加显式,并将其更改为select(. != null)。
发布于 2022-01-15 07:29:17
要删除输入中的所有null值(或任意条件),可以使用recurse/0 (..)和del/1。
del(.. | select(. == null))https://stackoverflow.com/questions/70718004
复制相似问题