2016-02-02 13 views
31

निम्नलिखित JQ कमान और Json को देखते हुए:मैं JQ का उपयोग कैसे करूँ स्ट्रिंग के लिए संख्या परिवर्तित करने के लिए?

jq '.[]|[.string,.number]|join(": ")' <<< ' 
[ 
    { 
    "number": 3, 
    "string": "threee" 
    }, 
    { 
    "number": 7, 
    "string": "seven" 
    } 
] 
' 

मैं उत्पादन फ़ॉर्मेट करने के लिए के रूप में कोशिश कर रहा हूँ:

jq: error: string and number cannot be added

:

three: 3 
seven: 7 

दुर्भाग्य से, मेरी प्रयास के बाद त्रुटि में परिणाम है

मैं कैसे स्ट्रिंग के लिए संख्या परिवर्तित ताकि दोनों शामिल हो सकते हैं?

उत्तर

35

JQ आदेश tostring समारोह है। यह मुझे कुछ समय लिया परीक्षण और त्रुटि से इसका इस्तेमाल करने के बारे में जानें। इसका इस्तेमाल करने के लिए है:

jq -r '.[] | [ .string, .number|tostring ] | join(": ")' <<< ' 
[{ "number": 9, "string": "nine"}, 
{ "number": 4, "string": "four"}] 
' 
nine: 9 
four: 4 
3

एक वैकल्पिक और यकीनन अधिक सहज ज्ञान युक्त प्रारूप है:

jq '.[] | .string + ": " + (.number|tostring)' <<< ... 

वर्थ कोष्ठक के आसपास .number|tostring के लिए की जरूरत टिप्पण।

संबंधित मुद्दे