mirror of
https://github.com/mikefarah/yq.git
synced 2024-12-19 20:19:04 +00:00
89 lines
1.2 KiB
Markdown
89 lines
1.2 KiB
Markdown
# String Operators
|
|
|
|
## Join strings
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
- cat
|
|
- meow
|
|
- 1
|
|
- null
|
|
- true
|
|
```
|
|
then
|
|
```bash
|
|
yq eval 'join("; ")' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
cat; meow; 1; ; true
|
|
```
|
|
|
|
## Substitute / Replace string
|
|
This uses golang regex, described [here](https://github.com/google/re2/wiki/Syntax)
|
|
Note the use of `|=` to run in context of the current string value.
|
|
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
a: dogs are great
|
|
```
|
|
then
|
|
```bash
|
|
yq eval '.a |= sub("dogs", "cats")' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
a: cats are great
|
|
```
|
|
|
|
## Substitute / Replace string with regex
|
|
This uses golang regex, described [here](https://github.com/google/re2/wiki/Syntax)
|
|
Note the use of `|=` to run in context of the current string value.
|
|
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
a: cat
|
|
b: heat
|
|
```
|
|
then
|
|
```bash
|
|
yq eval '.[] |= sub("(a)", "${1}r")' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
a: cart
|
|
b: heart
|
|
```
|
|
|
|
## Split strings
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
cat; meow; 1; ; true
|
|
```
|
|
then
|
|
```bash
|
|
yq eval 'split("; ")' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
- cat
|
|
- meow
|
|
- "1"
|
|
- ""
|
|
- "true"
|
|
```
|
|
|
|
## Split strings one match
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
word
|
|
```
|
|
then
|
|
```bash
|
|
yq eval 'split("; ")' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
- word
|
|
```
|
|
|