web-dev-qa-db-ja.com

jq-文字列で始まる属性を選択する

入力json:

[
  {
    "id": "89",
    "hostname": "abcd"
  },
  {
    "id": "89",
    "hostname": "babcd"
  }
]

「abcd」で始まる出力のみのホスト名を取得するように以下のフィルターを変更する方法は?

$ jq -r '.[]|select(.hostname | contains("abcd"))' jjjj
{
  "id": "89",
  "hostname": "abcd"
}
{
  "id": "89",
  "hostname": "babcd"
}
$ jq -r '.[]|select(.hostname | contains("^abcd"))' jjjj
$
11
Chris

解決:

jq -r '.[]|select(.hostname | startswith("abcd"))' jjjj
19
Chris