mirror of
https://github.com/mikefarah/yq.git
synced 2024-12-19 20:19:04 +00:00
68 lines
1.1 KiB
Markdown
68 lines
1.1 KiB
Markdown
# Unique
|
|
|
|
This is used to filter out duplicated items in an array. Note that the original order of the array is maintained.
|
|
|
|
|
|
## Unique array of scalars (string/numbers)
|
|
Note that unique maintains the original order of the array.
|
|
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
[2, 1, 3, 2]
|
|
```
|
|
then
|
|
```bash
|
|
yq 'unique' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
[2, 1, 3]
|
|
```
|
|
|
|
## Unique nulls
|
|
Unique works on the node value, so it considers different representations of nulls to be different
|
|
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
[~, null, ~, null]
|
|
```
|
|
then
|
|
```bash
|
|
yq 'unique' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
[~, null]
|
|
```
|
|
|
|
## Unique all nulls
|
|
Run against the node tag to unique all the nulls
|
|
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
[~, null, ~, null]
|
|
```
|
|
then
|
|
```bash
|
|
yq 'unique_by(tag)' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
[~]
|
|
```
|
|
|
|
## Unique array object fields
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
[{name: harry, pet: cat}, {name: billy, pet: dog}, {name: harry, pet: dog}]
|
|
```
|
|
then
|
|
```bash
|
|
yq 'unique_by(.name)' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
[{name: harry, pet: cat}, {name: billy, pet: dog}]
|
|
```
|
|
|