编辑包含纬度和经度数据的大文件,使其成为有效的JSON

时间:2018-06-07 05:56:32

标签: json shell

我有以下file我想用作项目的测试数据。我需要的唯一数据是位置对象中的纬度经度数据。

我设法使用以下命令从文件中删除所有不需要的数据:

sed -i '' '/pattern/d' ./locations.json

现在我无法尝试删除每个经度线上不需要的,字符。如何使用shell脚本快速完成此操作?

[
    {
        "latitude":-35.2777,
        "longitude":149.1189,
    },
    {
        "latitude":-35.3049,
        "longitude":149.1412,
    },
    {
        "latitude":-35.1627,
        "longitude":150.6907,
    },
    \\ and so on
]

我要做的是将此图案"longitude":\d+.\d+,替换为"longitude":\d+.\d+

1 个答案:

答案 0 :(得分:1)

jq 是处理JSON数据的正确工具:

jq 'map({latitude, longitude})' ./locations.json

输出(缩短):

[
  {
    "latitude": -35.2777,
    "longitude": 149.1189
  },
  {
    "latitude": -35.3049,
    "longitude": 149.1412
  },
  {
    "latitude": -35.1627,
    "longitude": 150.6907
  },
  {
    "latitude": -35.028,
    "longitude": 150.5501
  },
  {
    "latitude": -35.1333,
    "longitude": 150.7
  },
....
]

https://stedolan.github.io/jq/manual/v1.5/