【问题标题】:Simple jq command line query简单的jq命令行查询
【发布时间】:2021-08-31 21:29:40
【问题描述】:

我有一个更大的数据集,但这是我的 json 文件的示例。

{"units": {
  "1000000043579e28": {
    "1_hostname": "unit-a",
    "3_lastCheckIn": "08/31/21 16:00",
    "screensProcesses": [
      "file1",
      "file2" ]},
  "10000000553ff4cd": {
    "1_hostname": "unit-b",
     "3_lastCheckIn": "08/31/21 16:00",
    "screensProcesses": [
      "file1" ]}
}}

我想在 linux 中使用 jq 二进制文件。我正在尝试进行 2 个查询。

  1. 具有少于 2 个“screenProcesses”的单元。
  2. 超过 24 小时未签入的单元。 (如果需要,我可以修改在 json 文件中写入日期的方式。

【问题讨论】:

  • 请编辑您的问题以显示您尝试过的内容、预期输出与实际输出等。

标签: json select jq


【解决方案1】:

您可能希望将其分为两个问题,因为 #1 是一个相对简单的选择,而 #2 处理时间计算本身就是一个主题。无论如何,对于#1,您可以使用with_entriesunits 转换为具有keyvalue 字段的一系列地图,对具有select 的地图进行操作并再次转换回来。

$ jq '{"units": .units | with_entries(select(.value."screensProcesses" | length < 2))}' file.json
{
  "units": {
    "10000000553ff4cd": {
      "1_hostname": "unit-b",
      "3_lastCheckIn": "08/31/21 16:00",
      "screensProcesses": [
        "file1"
      ]
    }
  }
}

【讨论】:

    猜你喜欢
    • 2023-01-03
    • 1970-01-01
    • 2011-01-27
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    相关资源
    最近更新 更多