小编Mca*_*r49的帖子

jq 过滤器仅用于“空”值

我有一个 json 文件,其中包含大量 AWS CloudWatch 日志(从 CLI 命令生成)。我正在尝试使用 jq返回没有“retentionInDays”字段的条目的值。我有以下内容可以根据需要返回所有内容,但我似乎无法过滤掉具有保留时间的结果。

# Working output (unfiltered)
jq ".logGroups[] | { log_name: .logGroupName, log_arn: .arn, retention_scheme: .retentionInDays }" cwlogs.json
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几件事,但要么出错,要么完成但不输出任何内容:

# Doesn't return anything
jq '.logGroups[] | { log_name: .logGroupName, log_arn: .arn, retention_scheme: select(.retentionInDays | contains ("null")?) }' cwlogs.json

# Errors with "jq: error (at cwlogs.json:760): number (7) and string ("null") cannot have their containment checked"
jq '.logGroups[] | { log_name: .logGroupName, log_arn: .arn, retention_scheme: select(.retentionInDays | contains ("null")) }' cwlogs.json

# …
Run Code Online (Sandbox Code Playgroud)

linux json aws jq

1
推荐指数
2
解决办法
8663
查看次数

标签 统计

aws ×1

jq ×1

json ×1

linux ×1