Closed reuzel closed 5 months ago
Unique really only operates on scalars (strings/numbers/..) but what you can do, is unique_by(exp); and give it an expression that gives a scalar that it knows how to compare:
yq 'unique_by(to_yaml)' data1.yaml
- a: 1
b: 2
- a: 2
b: 2
- a: 1
b: 1
Guess I can use this same trick in the unique
function under the hood to handle objects 🤔
Fixed in v4.44.2
Describe the bug When provided with an array of objects, unique does not perform a 'deep' comparison to determine equality (like jq does).
Version of yq: 4.44.1 Operating system: linux Installed via: binary release
Input Yaml Concise yaml document(s) (as simple as possible to show the bug, please keep it to 10 lines or less) data1.yml:
Command The command you ran:
Actual behavior
Expected behavior
Additional comment Using a roundtrip via jq provides the right output (though the order in the output was sorted):
result: