在下面的 jq 脚本中,我想要打印 和 的连接first_name
或者last_name
仅仅last_name
。
$ echo '{"first_name": "John", "last_name": "Johnson"}' | jq -c '{
"name": (if (.last_name | startswith(.first_name))
then .last_name
else .first_name + " " + .last_name
end)
}'
错误是
jq: error (at <stdin>:1): Cannot index string with string "first_name"
jq 命令在调用startswith
- 时失败,好像startswith
只接受字符串文字。如果我更改startswith(.first_name)
为startswith("John")
,则表达式将编译并按预期工作。
在现实世界的例子中,有许多输入记录和许多不同的first_name
s。有什么方法可以插入.first_name
吗startswith
?