Предполагая, что ввод является допустимым JSON, и что допустимо применять преобразование везде, где это возможно, я бы использовал walk
для простоты:
walk( if type == "object" and has("b")
then .e = .b | del(.b)
else . end )
Возможно, вы захотите проверитьсуществование .e также, чтобы избежать его засеивания.
Если ваш jq не имеет walk
, просто вставьте его def перед вышеприведенным;для определения, просто Google для: JQ «Def Walk»