mirror of
https://github.com/wader/fq.git
synced 2024-11-22 15:45:45 +03:00
doc: Cleanup and note about repl limit
This commit is contained in:
parent
a49e924d5f
commit
0a97f86f32
@ -16,7 +16,7 @@ def recurse_depth(f; cond):
|
|||||||
|
|
||||||
[ ( recurse_depth(
|
[ ( recurse_depth(
|
||||||
.[]?;
|
.[]?;
|
||||||
._format
|
format
|
||||||
)
|
)
|
||||||
| . + {
|
| . + {
|
||||||
norm_path: (.value._path | map(if type == "number" then "index" end)),
|
norm_path: (.value._path | map(if type == "number" then "index" end)),
|
||||||
@ -27,7 +27,7 @@ def recurse_depth(f; cond):
|
|||||||
| map(.[0] + {count: length})
|
| map(.[0] + {count: length})
|
||||||
| .[]
|
| .[]
|
||||||
| [ if .depth > 0 then " "*.depth else empty end
|
| [ if .depth > 0 then " "*.depth else empty end
|
||||||
, (.value._format + if .count > 1 then "*\(.count) " else " " end)
|
, ((.value | format) + if .count > 1 then "*\(.count) " else " " end)
|
||||||
, (.value._path | path_to_expr)
|
, (.value._path | path_to_expr)
|
||||||
]
|
]
|
||||||
| join("")
|
| join("")
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
# x264 - core 161 r3020 d198931 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
|
# x264 - core 161 r3020 d198931 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
|
||||||
|
|
||||||
( ..
|
( ..
|
||||||
| select(._format == "avc_sei" and .uuid._symbol == "x264")
|
| select(format == "avc_sei" and .uuid._symbol == "x264")
|
||||||
| .data
|
| .data
|
||||||
| tostring[0:-1]
|
| tostring[0:-1]
|
||||||
| . as $full
|
| . as $full
|
||||||
|
23
doc/usage.md
23
doc/usage.md
@ -206,11 +206,17 @@ TODO: format graph?
|
|||||||
TODO
|
TODO
|
||||||
|
|
||||||
|
|
||||||
### Useful tricks
|
### Known issues and useful tricks
|
||||||
|
|
||||||
|
#### Run interactive mode with no input
|
||||||
|
```sh
|
||||||
|
fq -i
|
||||||
|
null>
|
||||||
|
```
|
||||||
|
|
||||||
#### `.. | select(...)` fails with `expected an ... but got: ...`
|
#### `.. | select(...)` fails with `expected an ... but got: ...`
|
||||||
|
|
||||||
Try add `select(...)?` the select expression assumes it will get and object etc.
|
Try add `select(...)?` to catch type errors in the select expression.
|
||||||
|
|
||||||
#### Manual decode
|
#### Manual decode
|
||||||
|
|
||||||
@ -229,9 +235,9 @@ $ fq file.mp3 .unknown0._bytes[10:] mp3_frame
|
|||||||
This won't work as expected `.a | f(.b)` as `.` is `.a` when evaluating the arguments.
|
This won't work as expected `.a | f(.b)` as `.` is `.a` when evaluating the arguments.
|
||||||
Instead do `. as $c | .a | f($c.b)`.
|
Instead do `. as $c | .a | f($c.b)`.
|
||||||
|
|
||||||
#### Appending to array is slow
|
#### Building array is slow
|
||||||
|
|
||||||
Try to use `map` or `foreach` instead.
|
Try to use `map` or `foreach` to avoid rebuilding the whole array for each append.
|
||||||
|
|
||||||
#### Use `print` and `println` to produce more friendly compact output
|
#### Use `print` and `println` to produce more friendly compact output
|
||||||
|
|
||||||
@ -252,8 +258,7 @@ Try to use `map` or `foreach` instead.
|
|||||||
1: b
|
1: b
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Run interactive mode with no input
|
### `repl` argument using function or variable causes `variable not defined`
|
||||||
```sh
|
|
||||||
fq -i
|
`true as $verbose | repl({verbose: $verbose})` will currently fail as `repl` is
|
||||||
null>
|
implemented by rewriting the query to `map(true as $verbose | .) | repl({verbose: $verbose})`.
|
||||||
```
|
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
def display($opts): _display($opts);
|
def display($opts): _display($opts);
|
||||||
def display: _display({});
|
def display: _display({});
|
||||||
def d($opts): _display($opts);
|
def d($opts): _display($opts);
|
||||||
@ -17,7 +15,7 @@ def v: verbose;
|
|||||||
# inspried by https://github.com/itchyny/gojq/issues/63#issuecomment-765066351
|
# inspried by https://github.com/itchyny/gojq/issues/63#issuecomment-765066351
|
||||||
def intdiv($a; $b): ($a - ($a % $b)) / $b;
|
def intdiv($a; $b): ($a - ($a % $b)) / $b;
|
||||||
|
|
||||||
# valid jq identifer, start with alpha or underscore then zero or more alpha, num or underscore
|
# valid jq identifier, start with alpha or underscore then zero or more alpha, num or underscore
|
||||||
def _is_ident: type == "string" and test("^[a-zA-Z_][a-zA-Z_0-9]*$");
|
def _is_ident: type == "string" and test("^[a-zA-Z_][a-zA-Z_0-9]*$");
|
||||||
# escape " and \
|
# escape " and \
|
||||||
def _escape_ident: gsub("(?<g>[\\\\\"])"; "\\\(.g)");
|
def _escape_ident: gsub("(?<g>[\\\\\"])"; "\\\(.g)");
|
||||||
|
Loading…
Reference in New Issue
Block a user