web-dev-qa-db-ja.com

jq-null値の「-」を出力する

入力json:

{
  "id": "3885",
  "login": "050111",
  "lastLoginTime": 1529730115000,
  "lastLoginFrom": "192.168.66.230"
}
{
  "id": "3898",
  "login": "050112",
  "lastLoginTime": null,
  "lastLoginFrom": null
}

ログイン、lastLoginTime、lastLoginFromの出力をタブ区切り形式で取得したい:

050111  1529730115000   192.168.66.230
050112              -                -

jqフィルターの下では、「-」で置き換えることができる「null」値が出力されません

$ jq -r '.|[.login, .lastLoginTime, .lastLoginFrom]|@tsv' test_json
050111  1529730115000   192.168.66.230
050112

そのようなnull値に対して「-」を印刷する他の方法はありますか?

11
Chris

代替演算子 を使用します://

そう :

$jq -r '.|[.login, .lastLoginTime // "-" , .lastLoginFrom // "-" ]|@tsv' test_json
050111  1529730115000   192.168.66.230
050112  -   -
22
EchoMike444