mirror of
https://github.com/mikefarah/yq.git
synced 2024-12-19 20:19:04 +00:00
v4.40.3
This commit is contained in:
parent
b06ab987b1
commit
cac23ac003
@ -4,7 +4,7 @@ The `or` and `and` operators take two parameters and return a boolean result.
|
|||||||
|
|
||||||
`not` flips a boolean from true to false, or vice versa.
|
`not` flips a boolean from true to false, or vice versa.
|
||||||
|
|
||||||
`any` will return `true` if there are any `true` values in a array sequence, and `all` will return true if _all_ elements in an array are true.
|
`any` will return `true` if there are any `true` values in an array sequence, and `all` will return true if _all_ elements in an array are true.
|
||||||
|
|
||||||
`any_c(condition)` and `all_c(condition)` are like `any` and `all` but they take a condition expression that is used against each element to determine if it's `true`. Note: in `jq` you can simply pass a condition to `any` or `all` and it simply works - `yq` isn't that clever..yet
|
`any_c(condition)` and `all_c(condition)` are like `any` and `all` but they take a condition expression that is used against each element to determine if it's `true`. Note: in `jq` you can simply pass a condition to `any` or `all` and it simply works - `yq` isn't that clever..yet
|
||||||
|
|
||||||
|
@ -187,7 +187,6 @@ yq '. head_comment="single"' sample.yml
|
|||||||
will output
|
will output
|
||||||
```yaml
|
```yaml
|
||||||
# single
|
# single
|
||||||
|
|
||||||
a: cat
|
a: cat
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -66,6 +66,7 @@ will output
|
|||||||
```yaml
|
```yaml
|
||||||
Mike: cat
|
Mike: cat
|
||||||
Mike: dog
|
Mike: dog
|
||||||
|
---
|
||||||
Rosey: monkey
|
Rosey: monkey
|
||||||
Rosey: sheep
|
Rosey: sheep
|
||||||
```
|
```
|
||||||
|
@ -85,6 +85,7 @@ will output
|
|||||||
```yaml
|
```yaml
|
||||||
match: cat
|
match: cat
|
||||||
doc: 0
|
doc: 0
|
||||||
|
---
|
||||||
match: frog
|
match: frog
|
||||||
doc: 1
|
doc: 1
|
||||||
```
|
```
|
||||||
|
@ -54,7 +54,6 @@ yq eval-all 'file_index' sample.yml another.yml
|
|||||||
will output
|
will output
|
||||||
```yaml
|
```yaml
|
||||||
0
|
0
|
||||||
---
|
|
||||||
1
|
1
|
||||||
```
|
```
|
||||||
|
|
||||||
|
77
operators/kind.md
Normal file
77
operators/kind.md
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
|
||||||
|
## Get kind
|
||||||
|
Given a sample.yml file of:
|
||||||
|
```yaml
|
||||||
|
a: cat
|
||||||
|
b: 5
|
||||||
|
c: 3.2
|
||||||
|
e: true
|
||||||
|
f: []
|
||||||
|
g: {}
|
||||||
|
h: null
|
||||||
|
```
|
||||||
|
then
|
||||||
|
```bash
|
||||||
|
yq '.. | kind' sample.yml
|
||||||
|
```
|
||||||
|
will output
|
||||||
|
```yaml
|
||||||
|
map
|
||||||
|
scalar
|
||||||
|
scalar
|
||||||
|
scalar
|
||||||
|
scalar
|
||||||
|
seq
|
||||||
|
map
|
||||||
|
scalar
|
||||||
|
```
|
||||||
|
|
||||||
|
## Get kind, ignores custom tags
|
||||||
|
Unlike tag, kind is not affected by custom tags.
|
||||||
|
|
||||||
|
Given a sample.yml file of:
|
||||||
|
```yaml
|
||||||
|
a: !!thing cat
|
||||||
|
b: !!foo {}
|
||||||
|
c: !!bar []
|
||||||
|
```
|
||||||
|
then
|
||||||
|
```bash
|
||||||
|
yq '.. | kind' sample.yml
|
||||||
|
```
|
||||||
|
will output
|
||||||
|
```yaml
|
||||||
|
map
|
||||||
|
scalar
|
||||||
|
map
|
||||||
|
seq
|
||||||
|
```
|
||||||
|
|
||||||
|
## Add comments only to scalars
|
||||||
|
An example of how you can use kind
|
||||||
|
|
||||||
|
Given a sample.yml file of:
|
||||||
|
```yaml
|
||||||
|
a:
|
||||||
|
b: 5
|
||||||
|
c: 3.2
|
||||||
|
e: true
|
||||||
|
f: []
|
||||||
|
g: {}
|
||||||
|
h: null
|
||||||
|
```
|
||||||
|
then
|
||||||
|
```bash
|
||||||
|
yq '(.. | select(kind == "scalar")) line_comment = "this is a scalar"' sample.yml
|
||||||
|
```
|
||||||
|
will output
|
||||||
|
```yaml
|
||||||
|
a:
|
||||||
|
b: 5 # this is a scalar
|
||||||
|
c: 3.2 # this is a scalar
|
||||||
|
e: true # this is a scalar
|
||||||
|
f: []
|
||||||
|
g: {}
|
||||||
|
h: null # this is a scalar
|
||||||
|
```
|
||||||
|
|
@ -519,7 +519,7 @@ will output
|
|||||||
some: thing
|
some: thing
|
||||||
```
|
```
|
||||||
|
|
||||||
## Merging an null with an array
|
## Merging a null with an array
|
||||||
Running
|
Running
|
||||||
```bash
|
```bash
|
||||||
yq --null-input 'null * ["some"]'
|
yq --null-input 'null * ["some"]'
|
||||||
|
49
operators/to_number.md
Normal file
49
operators/to_number.md
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# To Number
|
||||||
|
Parses the input as a number. yq will try to parse values as an int first, failing that it will try float. Values that already ints or floats will be left alone.
|
||||||
|
|
||||||
|
## Converts strings to numbers
|
||||||
|
Given a sample.yml file of:
|
||||||
|
```yaml
|
||||||
|
- "3"
|
||||||
|
- "3.1"
|
||||||
|
- "-1e3"
|
||||||
|
```
|
||||||
|
then
|
||||||
|
```bash
|
||||||
|
yq '.[] | to_number' sample.yml
|
||||||
|
```
|
||||||
|
will output
|
||||||
|
```yaml
|
||||||
|
3
|
||||||
|
3.1
|
||||||
|
-1e3
|
||||||
|
```
|
||||||
|
|
||||||
|
## Doesn't change numbers
|
||||||
|
Given a sample.yml file of:
|
||||||
|
```yaml
|
||||||
|
- 3
|
||||||
|
- 3.1
|
||||||
|
- -1e3
|
||||||
|
```
|
||||||
|
then
|
||||||
|
```bash
|
||||||
|
yq '.[] | to_number' sample.yml
|
||||||
|
```
|
||||||
|
will output
|
||||||
|
```yaml
|
||||||
|
3
|
||||||
|
3.1
|
||||||
|
-1e3
|
||||||
|
```
|
||||||
|
|
||||||
|
## Cannot convert null
|
||||||
|
Running
|
||||||
|
```bash
|
||||||
|
yq --null-input '.a.b | to_number'
|
||||||
|
```
|
||||||
|
will output
|
||||||
|
```bash
|
||||||
|
Error: cannot convert node value [null] at path a.b of tag !!null to number
|
||||||
|
```
|
||||||
|
|
@ -14,7 +14,7 @@ Given a sample.json file of:
|
|||||||
```
|
```
|
||||||
then
|
then
|
||||||
```bash
|
```bash
|
||||||
yq -P '.' sample.json
|
yq -p=json sample.json
|
||||||
```
|
```
|
||||||
will output
|
will output
|
||||||
```yaml
|
```yaml
|
||||||
@ -30,7 +30,7 @@ Given a sample.json file of:
|
|||||||
```
|
```
|
||||||
then
|
then
|
||||||
```bash
|
```bash
|
||||||
yq -P '.' sample.json
|
yq -p=json sample.json
|
||||||
```
|
```
|
||||||
will output
|
will output
|
||||||
```yaml
|
```yaml
|
||||||
|
34
usage/lua.md
34
usage/lua.md
@ -1,5 +1,33 @@
|
|||||||
|
|
||||||
## Basic example
|
## Basic input example
|
||||||
|
Given a sample.lua file of:
|
||||||
|
```lua
|
||||||
|
return {
|
||||||
|
["country"] = "Australia"; -- this place
|
||||||
|
["cities"] = {
|
||||||
|
"Sydney",
|
||||||
|
"Melbourne",
|
||||||
|
"Brisbane",
|
||||||
|
"Perth",
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
```
|
||||||
|
then
|
||||||
|
```bash
|
||||||
|
yq -oy '.' sample.lua
|
||||||
|
```
|
||||||
|
will output
|
||||||
|
```yaml
|
||||||
|
country: Australia
|
||||||
|
cities:
|
||||||
|
- Sydney
|
||||||
|
- Melbourne
|
||||||
|
- Brisbane
|
||||||
|
- Perth
|
||||||
|
```
|
||||||
|
|
||||||
|
## Basic output example
|
||||||
Given a sample.yml file of:
|
Given a sample.yml file of:
|
||||||
```yaml
|
```yaml
|
||||||
---
|
---
|
||||||
@ -101,6 +129,8 @@ numbers:
|
|||||||
- octal: 0o30
|
- octal: 0o30
|
||||||
- float: 123.45
|
- float: 123.45
|
||||||
- infinity: .inf
|
- infinity: .inf
|
||||||
|
plus_infinity: +.inf
|
||||||
|
minus_infinity: -.inf
|
||||||
- not: .nan
|
- not: .nan
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -134,6 +164,8 @@ return {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
["infinity"] = (1/0);
|
["infinity"] = (1/0);
|
||||||
|
["plus_infinity"] = (1/0);
|
||||||
|
["minus_infinity"] = (-1/0);
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["not"] = (0/0);
|
["not"] = (0/0);
|
||||||
|
@ -129,15 +129,13 @@ zoo:
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Parse xml: force all as an array
|
## Parse xml: force all as an array
|
||||||
Because of the way yq works, when updating everything you need to update the children before the parents. By default `..` will match parents first, so we reverse that before updating.
|
|
||||||
|
|
||||||
Given a sample.xml file of:
|
Given a sample.xml file of:
|
||||||
```xml
|
```xml
|
||||||
<zoo><thing><frog>boing</frog></thing></zoo>
|
<zoo><thing><frog>boing</frog></thing></zoo>
|
||||||
```
|
```
|
||||||
then
|
then
|
||||||
```bash
|
```bash
|
||||||
yq -oy '([..] | reverse | .[]) |= [] + .' sample.xml
|
yq -oy '.. |= [] + .' sample.xml
|
||||||
```
|
```
|
||||||
will output
|
will output
|
||||||
```yaml
|
```yaml
|
||||||
|
Loading…
Reference in New Issue
Block a user