Вы также можете рассмотреть следующий подход:
ильтр JQ объединяет выходные данные фильтра? Следующий jq not генерирует output.json с соответствующим значением входного аргумента ('jack').
input.json{
"key1": "",
"key2": ""
}
jq --arg input "$username" \
'if .key1 == "<value1>"
then . + {"key1" : ($input) }
else . end' input.json |
'if .key2 == "<value2>"
then . + {"key2" : ($input) }
else . end' > output.json
output.json{
"key1": "jack",
"key2": "jack"
}