jq 从列中选择子字符串

e38*_*543 2 arrays json substr jq

我的文件 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"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我可以成功地做到这一点:

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.
Run Code Online (Sandbox Code Playgroud)

但是,如果我只是尝试提取“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"
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

Fre*_*ddy 8

对“short_description”字符串应用子字符串过滤器:

jq -r '.result[].short_description[:250]' test.json
Run Code Online (Sandbox Code Playgroud)