2016-11-03 11 views
12

dostałem poniżej wyjścia przy użyciu: https://stackoverflow.com/a/40330344Get wyjść z JQ w jednej linii

(.issues[] | {key, status: .fields.status.name, assignee: .fields.assignee.emailAddress}) 

wyjściowy:

{ 
    "key": "SEA-739", 
    "status": "Open", 
    "assignee": null 
} 
{ 
    "key": "SEA-738", 
    "status": "Resolved", 
    "assignee": "[email protected]" 
} 

Ale muszę analizować każdej linii, ale jest to trudne w celu ustalenia, który z cesjonariuszy odpowiada kluczowi w odniesieniu do grupy kluczowej. Czy jest możliwe zrobienie jednej paczki w jednym rzędzie za pomocą jq?

oczekiwany wynik:

{ "key": "SEA-739", "status": "Open", "assignee": null } 
{ "key": "SEA-738", "status": "Resolved", "assignee": "[email protected]"} 

LUB

{ "SEA-739", "Open", null } 
{ "SEA-738", "Resolved", [email protected] } 

Odpowiedz

26

-c jest to, czego prawdopodobnie trzeba

Korzystanie wyjście ty zamieszczonych powyżej, można go przetwarzać dalej:

 
jq -c . input 

Podawać;

{"key":"SEA-739","status":"Open","assignee":null} 
{"key":"SEA-738","status":"Resolved","assignee":"[email protected]"} 

Albo można po prostu zmienić swoje pierwotne polecenie

OD

 
jq -r '(.issues[] | {key, status: .fields.status.name, assignee: .fields.assignee.emailAddress})' 

TO

jq -c '(.issues[] | {key, status: .fields.status.name, assignee: .fields.assignee.emailAddress})'