2016-12-06 2 views
0

Wie analysiere ich die Werte der Zeichenfolge "key" aus den folgenden json-Daten mithilfe von Shell-Skripten?JSON-Daten mit Shell Scripting analysieren

/Users/local/Documents/testjira:{"expand":"schema","names","startAt":"0","maxResults":"50","total":"2","issues":[{"expand":"operations","editmeta","changelog","transitions","renderedFields","id":"56392","self":"https://website.com/jira/rest/api/latest/issue/50342","key":"SAR-32"},{"expand":"operations","editmeta","changelog","transitions","renderedFields","id":"49799","self":"https://website.com/jira/rest/api/latest/issue/19720","key":"SAR-5"}]} 

Beispiel Ausgabe: SAR-32, SAR-5 so weiter ..

+3

Verwenden Sie geeignete 'json' Tools wie [' jq'] (https://stedolan.github.io/jq/) – Inian

Antwort

-1

Sie grep verwenden können und cut dies leicht zu tun:

[[email protected] ~]$ cat /tmp/testjira2 
{"expand":"schema","names","startAt":"0","maxResults":"50","total":"2","issues":[{"expand":"operations","editmeta","changelog","transitions","renderedFields","id":"56392","self":"https://website.com/jira/rest/api/latest/issue/50342","key":"SAR-32"},{"expand":"operations","editmeta","changelog","transitions","renderedFields","id":"49799","self":"https://website.com/jira/rest/api/latest/issue/19720","key":"SAR-5"}]} 

[[email protected] ~]$ grep -o '"key":"[^"]*"' /tmp/testjira2 |cut -d'"' -f4 
SAR-32 
SAR-5 
+0

ich den obigen Befehl verwendet Parsen, aber es hat Anzeige keine Ausgabe . Der Befehl, den ich verwendet habe "grep -o 'key: [- A-Z0-9] *'/Benutzer/local/Dokumente/jira | cut -d: -f2" – sunil

+0

Welche Version von 'grep' verwenden Sie? 'grep -V' Sind Sie sicher, dass Ihre Daten mit Ihren Beispieldaten übereinstimmen? – varlogtim

+0

Ja, ich bin mir sicher, dass die Daten gleich sind. grep version - 'grep (GNU grep) 2,20' – sunil

1

Unter der Annahme gültig JSON wie

{ 
    "expand":["schema", "names"], 
    "startAt":"0", 
    "maxResults":"50", 
    "total":"2", 
    "issues":[ 
     { 
      "expand":["operations","editmeta","changelog","transitions","renderedFields"], 
      "id":"56392", 
      "self":"https://website.com/jira/rest/api/latest/issue/50342", 
      "key":"SAR-32" 
     }, 
     { 
      "expand":["operations","editmeta","changelog","transitions","renderedFields"], 
      "id":"49799", 
      "self":"https://website.com/jira/rest/api/latest/issue/19720", 
      "key":"SAR-5" 
     } 
    ] 
} 

können Sie den folgenden Aufruf verwenden jq:

$ jq -r '.issues[] | .key' tmp.json 
SAR-32 
SAR-5