No script jq abaixo, quero imprimir a concatenação de e first_name
ou last_name
apenas 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)
}'
O erro é
jq: error (at <stdin>:1): Cannot index string with string "first_name"
O comando jq falha na chamada para startswith
- como se startswith
aceitasse apenas literais de string. Se eu mudar startswith(.first_name)
para startswith("John")
então a expressão compila e funciona como esperado.
No exemplo do mundo real, há muitos registros de entrada e muitos first_name
s diferentes. Existe uma maneira de eu conectar .first_name
em startswith
?