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

标签 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
  }

非常感谢任何帮助。

最佳答案

您的命令适用于您的示例 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
  }

关于json - 如何使用SED转换JSON格式的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52214488/

相关文章:

json - 使用并进一步解析 form.errors.as_json 以在 Django 中返回 http 响应

java.lang.RuntimeException : java. lang.RuntimeException : Duplicate class bolts. 在模块 jetified-bolts-tasks-1.24.1.jar 中发现 AggregateException

regex - 使用 sed 在两个模式之间替换多个惰性字符串

shell - Gradle Exec任务无法运行sed

bash - UNIX:从 CSV 文件中获取数字的出现次数

regex - sed - 在进行真正的替换之前知道匹配的文本作为测试

javascript - 我无法使用 Javascript 使用 JSON 进行解析

PHP JSON 获取键和值

json - Postgresql 更新 JSON 列保留一些键值并将其他键值添加为空