Combinando JSON por pares clave-valor comunes

Actualmente estoy trabajando en un problema y parece que no puedo resolverlo. Aquí hay algunos datos para que sepa de lo que estoy hablando a continuación:

foo.json

{
    "Schedule": [
        {
            "deviceId": 123,
            "reservationId": 123456,
            "username": "jdoe"
        },
        {
            "deviceId": 456,
            "reservationId": 589114,
            "username": "jsmith"
        }
    ],
    "serverTime": 1522863125.019958
}

bar.json

[
    {
        "a": {
            "b": "10.0.0.1",
            "c": "hostname1"
        },
        "deviceId": 123
    },
    {
        "a": {
            "b": "10.0.0.2",
            "c": "hostname2"
        },
        "deviceId": 456
    }
]

foobar.json

{
    "Schedule": [
        {
            "deviceId": 123,
            "reservationId": 123456,
            "username": "jdoe",
            "a": {
                "b": "10.0.0.1",
                "c": "hostname1"
            }
        }
        },
        {
            "deviceId": 456,
            "reservationId": 789101,
            "username": "jsmith",
            "a": {
                "b": "10.0.0.2",
                "c": "hostname2"
            }
        }
    ],
    "serverTime": 1522863125.019958
}

Estoy tratando de usar jq para hacer esto, y recibí ayuda de esta publicación:https: //github.com/stedolan/jq/issues/109 El objetivo es poder combinar JSON, utilizando alguna clave como punto común entre los documentos. Los datos pueden estar anidados en cualquier cantidad de niveles. En este caso, foo.json ha anidado datos de solo dos niveles de profundidad, pero debe combinarse con datos anidados de 1 nivel de profundidad.

Cualquiera y todas las sugerencias serían muy útiles. También me complace aclarar y responder preguntas si es necesario. ¡Gracias

Respuestas a la pregunta(1)

Su respuesta a la pregunta