2015-11-26 2 views
8

Ich habe Dateien mit 1 Json-Dokument pro Zeile und die Felder start_id und end_id in jedem Dokument. Ich möchte jq verwenden, um diese zu extrahieren und sie in der gleichen Zeile auszudrucken.Concat-Nummern aus JSON ohne doublequotes

Bisher habe ich:

cat part* | jq '"\(.start_id) \(.end_id)"' | sed s/\"//g | head 

Dies funktioniert, aber ich brauche die sed die doppelten Anführungszeichen zu entfernen.

Um meine jq-foo zu verbessern, gibt es eine Möglichkeit ohne sed zu tun?

z.B. gegeben

{"start_id":1,"end_id":50} 
{"start_id":50,"end_id":99} 
{"start_id":99,"end_id":12} 

bekommen
1 50 
50 99 
99 12 

statt

"1 50" 
"50 99" 
"99 12" 
+2

Sie eine Konsole auf der Hand nicht haben, aber man konnte runnign jq mit '--raw-output' Parameter – xjedam

+0

Ja versuchen, Das tut es! – Synesso

Antwort

13

standardmäßig jq formatiert sein Ausgang ein gültiger json Wert. Dies bedeutet, dass Zeichenketten in Anführungszeichen gesetzt werden.

Fortunalelly --raw-output oder -r Parameter überschreibt dieses Verhalten, so dass Ihre String-Ausgabe frei von diesen fiesen Anführungszeichen sein kann;).

Quelle: https://stedolan.github.io/jq/manual/