输入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 过滤器,我得到的输出没有“空”值,我可以用“-”替换
$ jq -r '.|[.login, .lastLoginTime, .lastLoginFrom]|@tsv' test_json
050111 1529730115000 192.168.66.230
050112
有没有其他方法可以为这些空值打印“-”?
使用替代运算符://
所以 :
这是使用与EchoMike444 在其答案
jq
中相同的实际功能将值更改为破折号,但以另一种方式进行。null
我没有列出要提取的
id
密钥,而是删除了我们不想使用的密钥。然后我提取剩余的值并用于map()
将值更改null
为破折号: