TL; DR: Bei einer Eingabedatei mit einer Reihe von Schlüsselpaaren möchte ich das drittletzte und das viertletzte Paar auswählen. Ich kann sie einzeln bekommen, aber ich möchte beide auf einmal nehmen, wenn möglich. Kann das gemacht werden?jq: Bereich auswählen
Meine Eingabedatei ist wie folgt strukturiert;
[
{
"foo": "bar",
"foo2": "bar2"
},
{
"foo3": "bar3",
"foo4": "bar4"
},
{
"foo5": "bar5",
"foo6": "bar6"
},
{
"foo7": "bar7",
"foo8": "bar8"
},
{
"foo9": "bar9",
"foo10": "bar10"
}
]
Und meine Ausgabe
[
{
"foo3": "bar3",
"foo4": "bar4"
},
{
"foo5": "bar5",
"foo6": "bar6"
}
]
Ich weiß sein sollte ich jq -s '.[-3]'
tun kann, die 3.-to-last zu bekommen (und Swap mit einem 4 für den 4.-to-last), aber das packt sie getrennt.
Ich dachte aus der Dokumentation, dass jq -s '.[-3;-4]'
würde beide greifen, aber das wirft einen Fehler.
Ich könnte sie einzeln greifen und an jedem separat arbeiten, aber das ist schlampig Code. Gibt es eine sauberere Möglichkeit, beides auf einmal zu greifen?