jqで正規表現を使ってフィルタする
Jan 18, 2021 14:33 · 131 words · 1 minute read
select
と test
をつかってフィルタする
例
こんなjsonがあったとして。
$ cat /tmp/_
{
"monitors": [
{
"id": "mysql",
"name": "mysql-freeable_memory"
},
{
"id": "redis10",
"name": "redis10-freeable_memory"
},
{
"id": "redis11",
"name": "redis11-freeable_memory"
}
]
}
たとえば monitorsオブジェクトのname属性を正規表現で絞って数値を見たいとき。
$ cat /tmp/_ | jq '.monitors[] | select(.name | test("^redis.+freeable_memory"))'
{
"id": "redis10",
"name": "redis10-freeable_memory"
}
{
"id": "redis11",
"name": "redis11-freeable_memory"
}