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.
|
||||
|
||||
`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
|
||||
|
||||
|
@ -187,7 +187,6 @@ yq '. head_comment="single"' sample.yml
|
||||
will output
|
||||
```yaml
|
||||
# single
|
||||
|
||||
a: cat
|
||||
```
|
||||
|
||||
|
@ -66,6 +66,7 @@ will output
|
||||
```yaml
|
||||
Mike: cat
|
||||
Mike: dog
|
||||
---
|
||||
Rosey: monkey
|
||||
Rosey: sheep
|
||||
```
|
||||
|
@ -85,6 +85,7 @@ will output
|
||||
```yaml
|
||||
match: cat
|
||||
doc: 0
|
||||
---
|
||||
match: frog
|
||||
doc: 1
|
||||
```
|
||||
|
@ -54,7 +54,6 @@ yq eval-all 'file_index' sample.yml another.yml
|
||||
will output
|
||||
```yaml
|
||||
0
|
||||
---
|
||||
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
|
||||
```
|
||||
|
||||
## Merging an null with an array
|
||||
## Merging a null with an array
|
||||
Running
|
||||
```bash
|
||||
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
|
||||
```bash
|
||||
yq -P '.' sample.json
|
||||
yq -p=json sample.json
|
||||
```
|
||||
will output
|
||||
```yaml
|
||||
@ -30,7 +30,7 @@ Given a sample.json file of:
|
||||
```
|
||||
then
|
||||
```bash
|
||||
yq -P '.' sample.json
|
||||
yq -p=json sample.json
|
||||
```
|
||||
will output
|
||||
```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:
|
||||
```yaml
|
||||
---
|
||||
@ -101,6 +129,8 @@ numbers:
|
||||
- octal: 0o30
|
||||
- float: 123.45
|
||||
- infinity: .inf
|
||||
plus_infinity: +.inf
|
||||
minus_infinity: -.inf
|
||||
- not: .nan
|
||||
|
||||
```
|
||||
@ -134,6 +164,8 @@ return {
|
||||
},
|
||||
{
|
||||
["infinity"] = (1/0);
|
||||
["plus_infinity"] = (1/0);
|
||||
["minus_infinity"] = (-1/0);
|
||||
},
|
||||
{
|
||||
["not"] = (0/0);
|
||||
|
@ -129,15 +129,13 @@ zoo:
|
||||
```
|
||||
|
||||
## 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:
|
||||
```xml
|
||||
<zoo><thing><frog>boing</frog></thing></zoo>
|
||||
```
|
||||
then
|
||||
```bash
|
||||
yq -oy '([..] | reverse | .[]) |= [] + .' sample.xml
|
||||
yq -oy '.. |= [] + .' sample.xml
|
||||
```
|
||||
will output
|
||||
```yaml
|
||||
|
Loading…
Reference in New Issue
Block a user