jq select 列中的子字符串

jq select substring from a column

我的文件 test.json 包含以下内容:

{
  "result": [
    {
      "short_description": "The Net Energy Metering (NEM) Customer Application Database is used to track Customer Applications for a Net Energy Metering Interconnection Application. In almost all cases, the driver of these applications is prompted by the customer installing solar panels on the roof or his or her residence. There are numerous steps required in order to process the NEM applications. The Net Energy Metering Database facilitates this process and allows ACME to keep track of the current status of each customer application.",
      "managed_by": "Bill Anderson",
      "u_storm_impact_flag": "",
      "business_criticality": "Medium",
      "u_compliance_flag": "",
      "active": "true",
      "emergency_tier": "Tier 3"
    }
  ]
}

我可以成功做到这一点:

cat test.json|jq -r '.result[].short_description'

The Net Energy Metering (NEM) Customer Application Database is used to track Customer Applications for a Net Energy Metering Interconnection Application. In almost all cases, the driver of these applications is prompted by the customer installing solar panels on the roof or his or her residence. There are numerous steps required in order to process the NEM applications. The Net Energy Metering Database facilitates this process and allows PHI to keep track of the current status of each customer application.

但是,如果我只是尝试提取 "short_description" 列的前 250 个字符,我会收到以下错误:

cat test.json|jq -r '.result[0:249].short_description'

jq: error (at <stdin>:13): Cannot index array with string "short_description"

你能告诉我我做错了什么吗?

谢谢!

在 "short_description" 字符串上应用子字符串过滤器:

jq -r '.result[].short_description[:250]' test.json