想得到 "小张 20200812-142501" 结果,就要使用内部函数 strflocaltime
test.json
{
"LiveInfo": {
"nick": "小张",
"startTime": 1597213501
}
}
方法1:
cat test.json|jq -M ".LiveInfo|(.nick + " " + (.startTime|strflocaltime("%%Y%%m%%d-%%H%%M%%S")|tostring) )"
显示:"小张 20200812-142501"
nick值为中文时 JQ 加 -r 参数出错 jq: error: writing output failed: Invalid argument
nick值为英文时 JQ 加 -r 正常输出
方法2:
cat test.json|jq -M ".LiveInfo|"(.nick)_(.startTime)""
显示:"小张_1597213501"
cat test.json|jq -M ".LiveInfo|"(.nick)_(.startTime|strflocaltime("%%Y%%m%%d-%%H%%M%%S"))""
'strflocaltime' is not recognized as an internal or external command
结论:如果想使用JQ的内部函数请使用方法1