yq/operators/tag.md

85 lines
907 B
Markdown
Raw Normal View History

2021-10-30 03:14:39 +00:00
# Tag
The tag operator can be used to get or set the tag of nodes (e.g. `!!str`, `!!int`, `!!bool`).
## Get tag
Given a sample.yml file of:
```yaml
a: cat
b: 5
c: 3.2
e: true
f: []
```
then
```bash
2022-01-28 01:45:43 +00:00
yq '.. | tag' sample.yml
2021-10-30 03:14:39 +00:00
```
will output
```yaml
!!map
!!str
!!int
!!float
!!bool
!!seq
```
2022-04-29 02:16:48 +00:00
## type is an alias for tag
Given a sample.yml file of:
```yaml
a: cat
b: 5
c: 3.2
e: true
f: []
```
then
```bash
yq '.. | type' sample.yml
```
will output
```yaml
!!map
!!str
!!int
!!float
!!bool
!!seq
```
2021-10-30 03:14:39 +00:00
## Set custom tag
Given a sample.yml file of:
```yaml
a: str
```
then
```bash
2022-01-28 01:45:43 +00:00
yq '.a tag = "!!mikefarah"' sample.yml
2021-10-30 03:14:39 +00:00
```
will output
```yaml
a: !!mikefarah str
```
## Find numbers and convert them to strings
Given a sample.yml file of:
```yaml
a: cat
b: 5
c: 3.2
e: true
```
then
```bash
2022-01-28 01:45:43 +00:00
yq '(.. | select(tag == "!!int")) tag= "!!str"' sample.yml
2021-10-30 03:14:39 +00:00
```
will output
```yaml
a: cat
b: "5"
c: 3.2
e: true
```
2021-11-03 04:00:28 +00:00