我不了解to_entries
在jq中的工作方式。
我在payload.json
{"REGION":"us-east-1","EMAIL":"contain","UPDATE":1}
我想将其转换为=
分隔的键对,就像这样;
REGION=us-east-1
EMAIL=contain
UPDATE=1
我正在使用
jq -r 'to_entries | .[] | .key + "=" + .value' < payload.json
但是我得到一个错误
jq: error (at <stdin>:0): string ("UPDATE=") and number (1) cannot be added
如果我理解正确,那么问题在于更新值是数字,而不是字符串(即,让它们不匹配类型是一个问题),因此我尝试了以下操作,但都出现了相同的错误;
string interpolation:
jq -r 'to_entries | .[] | (.key) + "=" + (.value)' < payload.json
tostring:
jq -r 'to_entries | .[] | .key + "=" + .value|tostring' < payload.json
我想念什么?
答案 0 :(得分:2)
我想念什么?
一对括号:
.key + "=" + ( .value|tostring )
或者,您可以使用字符串插值,例如
"\(.key)=\(.value)"