私が今まで見てきたすべての例では、出力(フィルターアウト)の一部が「削減」されています。入力したい部分を操作する方法を理解していますが、残りの部分を出力する方法はわかりません。jsonを使用してjsonファイルの完全な内容を再構築し、関心のある部分だけを操作する方法は?
特定の例は、いくつかの高レベルエントリ "array1"、 "field1"、 "array2"、 "array3"と言う入力ファイルです。各配列の内容は異なります。
jq '.array1 | sort_by(.name)' test.json
が、私はまた、「配列1」だけでなく、他のすべてのデータに、この出力をしたい:私は何をしたい具体的な処理によってなんとかです「名」フィールドで「ARRAY1」エントリをソートすることです保存される。
例入力:
{
"field1": "value1",
"array1":
[
{ "name": "B", "otherdata": "Bstuff" },
{ "name": "A", "otherdata": "Astuff" }
],
"array2" :
[
array2 stuff
],
"array3" :
[
array3 stuff
]
}
予想される出力:
{
"field1": "value1",
"array1":
[
{ "name": "A", "otherdata": "Astuff" },
{ "name": "B", "otherdata": "Bstuff" }
],
"array2" :
[
array2 stuff
],
"array3" :
[
array3 stuff
]
}
私はマップを使用してみましたが、私は入力の任意の型を扱うことができるように構文が正しいように見えることはできません配列以外の名前で並べ替えたい