考慮以下(簡化的)JSON:
[
{
"type": "foo",
"name": "test_1"
},
{
"type": "bar",
"name": "test_2"
},
{
"type": "bar",
"name": "test_3"
}
]
我正在使用以下過濾器來生成我的輸出:
group_by(.type)[][] | "\(if "type" == "foo" then "oof" else "rab" end)&\(.name)"
這產生
rab&test_2
rab&test_3
rab&test_1
演示
使用column -ts '&'它被轉換為:
rab test_2
rab test_3
rab test_1
我的問題;我需要添加一個自定義標題行,以便輸出變為:
test&foo&bar
rab&test_2
rab&test_3
rab&test_1
如何添加(靜態)一組標題行有很多問題,例如:
- 如何在jq中為CSV匯出添加標題?
- 使用 JQ 從 JSON 轉換后的 CSV 檔案中的列名
但我無法組合它,所以我可以group_by保持完整并讓column處理間距
(我寧愿讓column處理間距)
tl;博士;
如何添加自定義標頭陣列,例如:
[ "test", "foo", "bar" ] | join("&")
以便
- 在
group_by它的背后,一切都沒有改變 column可以決議輸出
編輯,當然我可以column從jq命令中取消,然后echo像這樣“濫用” :
ugly=$(curl --silent <URI> \
| jq -r 'group_by(.type)[][] | "\(if "type" == "foo" then "oof" else "rab" end)&\(.name)"' \
| egrep --color -E "FooBar|$")
headers="foo#bar#foorbar"
echo "$headers\n$ugly" | column -ts '#' \
但我寧愿保持| column的jq一部分,這樣echo并$ugly沒有必要。
uj5u.com熱心網友回復:
將運算式括在括號中并| ["test&foo&bar"] . | .[]在末尾添加。
[group_by(.type)[][] | "\(if "type" == "foo" then "oof" else "rab" end)&\(.name)"] | ["test&foo&bar"] . | .[]
不知道你為什么需要columns. 好像你可以&用\t.
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/361637.html
上一篇:嘗試反序列化子類時出現“com.fasterxml.jackson.databind.exc.InvalidTypeIdException:無法決議型別ID”
下一篇:Jq:將欄位映射到csv
