2015-11-26 8 views
8

Ho file con 1 documento json per riga e i campi start_id e end_id in ciascun documento. Mi piacerebbe usare jq per estrarli e stamparli sulla stessa riga.Numeri di concatenazione da JSON senza doppiquotes

Finora ho:

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

Questo funziona, ma ho bisogno del sed per rimuovere le virgolette.

Per migliorare il mio jq-foo, c'è un modo per fare questo senza usare sed?

ad es. dato

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

ottenere

1 50 
50 99 
99 12 

invece di

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

Non hai ancora un console a portata di mano, ma si potrebbe provare Runnign JQ con 'parametro --raw-output' – xjedam

+0

Sì, che lo fa! – Synesso

risposta

13

Per impostazione predefinita jq formatta la sua uscita ad essere un valore JSON valido. Ciò significa che le stringhe di caratteri sono racchiuse tra virgolette.

Fortunatamente il parametro --raw-output o -r ha la precedenza su tale comportamento in modo che l'output della stringa possa essere privo di tali virgolette;).

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

Problemi correlati