【问题标题】:jq: find and replace within filterjq:在过滤器中查找和替换
【发布时间】:2020-10-05 20:21:16
【问题描述】:

我使用此命令从 API 提要返回一些 json 值:

curl -s -u user:pass -H 'my header' https://example.com/data.json | jq -cr  '.[] | {id: .id, content: .content, assignee: .assignee.name}

我正在获取我需要的 CSV,即:

1235,"some text, sometimes with a comma, perhaps", "John Doe"

一切都很好,但是“content: .content”值中的命令会影响我们对数据的处理。

我正在尝试替换命令中的逗号,甚至不确定要搜索什么术语。理想情况下,我会使用这样的东西:

jq -cr  '.[] | {id: .id, content: *** BEGIN DO SOMETHING .content END DO SOMETHING***, assignee: .assignee.name}

...我只是不知道那个东西是什么。

我猜它是一个 gsub,但不确定如何隔离 .content 的语法。

【问题讨论】:

    标签: jq


    【解决方案1】:

    应该等待必要的 5 分钟。

    在别处找到我的答案:

    jq -cr  '.[] | {id: .id, content: .content | sub(","; ""), assignee: .assignee.name} 
    

    【讨论】:

    • 可能要使用gsub 替换所有逗号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    相关资源
    最近更新 更多