Jq

如果 jq 中的 else 沒有給出預期的輸出

  • February 19, 2019

如果他們的領域是內部的,我需要顯示使用者。

輸入:

[
 {
   "name": "A_A",
   "uri": "https:test/test",
   "realm": "internal"
 },
 {
   "name": "B_B",
   "uri": "https:test/test",
   "realm": "internal"
 },
 {
   "name": "C_C",
   "uri": "https:test/test",
   "realm": "external"
 }
]

試過:

jq 'if .[].realm == "internal" then .[].name else empty end'

但問題是它列出了所有使用者。

預期輸出:

A_A , B_B

您可以使用 jq 功能select

<file jq -r '.[] | select(.realm == "internal") | .name'

第一個.[]獲取數組元素。select()適用於單個元素和過濾器有正確的realm。最後一部分列印該name欄位。

引用自:https://unix.stackexchange.com/questions/501577