У меня есть вывод JSON в следующем формате:
{
  "DaysCfg": {
    "Range": {
      "lowerDate": "2017-07-28T00:00:00.000-04:00",
      "upperDate": "2017-08-04T00:00:00.000-04:00"
    },
    "DaysInPeriod": 8,
    "DaysToSchedule": [
      0,
      1,
      2,
      3,
      4,
      5,
      6
    ]
  },
  "DepartmentsID": [
    138837,
    139734,
    141934,
    142436,
    149687,
    151049
  ],
  "EmployeesID": [
    5039,
    5170,
    5889,
    6051,
    6236,
    7208,
    7281,
    8776,
    8781,
    8936,
    9261
  ],
  "EndDate": "2017-08-03T23:59:00.000-04:00",
  "IntervalSize": 15,
  "IsActivitiesEnabled": true,
  "ModifyExisting": false,
  "OrignId": 134721,
  "PrimaryOption": 0,
  "SchoolDays": [],
  "ScChanges": [],
  "StartDate": "2017-07-28T00:00:00.000-04:00",
  "ZonesToSchedule": [
    5,
    4,
    6,
    3,
    3,
    3,
    2,
    14
  ]
}
Поскольку я не могу изменить программу, которая ее выводит, я должен использовать sed (или awk) для сжатия JSON-массивов самостоятельно. Желаемый результат будет:
{
  "DaysCfg": {
    "Range": {
      "lowerDate": "2017-07-28T00:00:00.000-04:00",
      "upperDate": "2017-08-04T00:00:00.000-04:00"
    },
    "DaysInPeriod": 8,
    "DaysToSchedule": [0, 1, 2, 3, 4, 5, 6]
  },
  "DepartmentsID": [138837, 139734, 141934, 142436, 149687, 151049],
  "EmployeesID": [5039, 5170, 5889, 6051, 6236, 7208, 7281, 8776, 8781, 8936, 9261],
  "EndDate": "2017-08-03T23:59:00.000-04:00",
  "IntervalSize": 15,
  "IsActivitiesEnabled": true,
  "ModifyExisting": false,
  "OrignId": 134721,
  "PrimaryOption": 0,
  "SchoolDays": [],
  "ScChanges": [],
  "StartDate": "2017-07-28T00:00:00.000-04:00",
  "ZonesToSchedule": [5, 4, 6, 3, 3, 3, 2, 14]
}
Я сам пытался придумать сценарий sed , но он только наполовину приготовлен и работает не полностью:
sed -r -e :a -e '/^ *[]}],*$/!N; /": \[/s/\n +//; ta' -e 'P;D'
Пожалуйста помоги. Спасибо.
