【问题标题】:Curl output to CSV-BASH卷曲输出到 CSV-BASH
【发布时间】:2018-04-16 10:14:52
【问题描述】:

使用这个命令我得到 JSON 输出:

curl -s -H "Accept: application/json" -X GET "http://192.168.253.21:4440/api/20/project/test/executions?authtoken=kH44NoX35bp1zxohgkMtsOIC9H9tw6UI" | jq -r '.|[.executions[] | select(.job.name != null) | select(.job.name|contains("JIRA_Create_Subtask")) ] | sort_by(.id) | reverse | .[0] | [.status, .job.name, ."date-started".date, ."date-ended".date, .job.project]' > /tmp/1.txt

cat /tmp/1.txt
[
  "succeeded",
  "JIRA_Create_Subtask",
  "2018-04-16T10:00:00Z",
  "2018-04-16T10:00:02Z",
  "test"
]

如何获得 csv 格式的输出:

"succeeded","JIRA_Create_Subtask","2018-04-16T10:00:00Z","2018-04-16T10:00:02Z","test"

【问题讨论】:

    标签: json bash csv curl


    【解决方案1】:

    You can use @csv format in jq:

    curl -s -H "Accept: application/json" -X GET "http://192.168.253.21:4440/api/20/project/test/executions?authtoken=kH44NoX35bp1zxohgkMtsOIC9H9tw6UI" |
    jq -r '.|[.executions[] |
       select(.job.name != null) |
       select(.job.name|contains("JIRA_Create_Subtask")) ] |
       sort_by(.id) | reverse | .[0] |
       [.status, .job.name, ."date-started".date, ."date-ended".date, .job.project] |
       @csv'
    

    【讨论】:

    • 您可以为该答案投票,然后用勾号标记最佳答案。
    【解决方案2】:

    如果您的值中没有任何空格或方括号,您可以使用tr

    cat 1.txt | tr -d '[]\n '
    

    tr 删除任何 []、回车符或空格字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-02
      • 2020-04-22
      • 1970-01-01
      相关资源
      最近更新 更多