如何使用SED转换JSON中的数据格式

时间:2018-09-07 02:33:35

标签: json sed

我有一个很大的NDJSON文件,其中一个字段为"createDate":"01/02/2018"。它为dd/mm/yyyy格式,我需要将其转换为yyyy-mm-dd格式。

我可以使用以下命令在少量输入上使用sed

echo 28/02/2018 | sed 's,\([0-9][0-9]\)/\([0-1][0-9]\)/\([1-2][0-9][0-9][0-9]\),\3-\2-\1,'

但是,我找不到解决方案,其中必须在JSON文件中执行此操作,该值位于名称为"createDate"的键下。

一个示例JSON对象如下所示:

{
    "pushNotificationEnabled": "true",
    "createDate": "11/08/2018",
    "email": null,
    "photoUrl": null
  }

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您的命令适用于示例JSON对象!您可能希望将其操作限制为createDate字段:

sed '/"createDate":/s,\([0-9][0-9]\)/\([0-1][0-9]\)/\([1-2][0-9][0-9][0-9]\),\3-\2-\1,' input.json

这只会影响包含"createDate":标签的行:

==> input.json <==
{
    "pushNotificationEnabled": "true",
    "createDate": "11/08/2018",
    "modifyDate": "31/08/2018",
    "email": null,
    "photoUrl": null
  }
$ sed '/"createDate":/s,\([0-9][0-9]\)/\([0-1][0-9]\)/\([1-2][0-9][0-9][0-9]\),\3-\2-\1,' input.json
{
    "pushNotificationEnabled": "true",
    "createDate": "2018-08-11",
    "modifyDate": "31/08/2018",
    "email": null,
    "photoUrl": null
  }