代码之家  ›  专栏  ›  技术社区  ›  Milister

卷曲输出到CSV-BASH

  •  1
  • Milister  · 技术社区  · 7 年前

    使用此命令,我可以获得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"
    
    2 回复  |  直到 7 年前
        1
  •  4
  •   anubhava    7 年前

    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
  •  0
  •   oliv    7 年前

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

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

    tr公司 删除任何 [ ,则, ] ,cariage返回或空格字符。