Bot releases are hidden (Show)
Published by wtlangford almost 6 years ago
builtins/0
stderr/0
halt/0, halt_error/1
isempty/1
walk/1
utf8bytelength/1
localtime/0, strflocaltime/1
$ENV
builtin variable to access environmentJQ_COLORS
env var for configuring the output colorsjq
without a program argument now always assumes .
for the program, regardless of stdin/stdout. (5fe0536)./configure --with-oniguruma=builtin
option to make it easier to build with oniguruma support on systems where you can't install system-level libraries. (c6374b6 and 02bad4b)Published by nicowilliams about 9 years ago
Thanks to the 20+ developers who have sent us PRs since 1.4, and the many contributors to issues and the wiki.
The manual for jq 1.5 can be found at https://stedolan.github.io/jq/manual/v1.5/
Salient new features since 1.4:
regexp support (using Oniguruma)!
a proper module system
import "foo/bar" as bar; # import foo/bar.jq's defs into a bar::* namespace
and
include "foo/bar"; # import foo/bar.jq's defs into the top-level
destructuring syntax (. as [$first, $second, {$foo, $bar}] | ...
)
math functions
an online streaming parser
minimal I/O builtions (inputs
, debug
)
One can now write:
jq -n 'reduce inputs as $i ( ... )'
to reduce inputs in an online way without having to slurp them first! This works with streaming too.
try/catch, for catching and handling errors (this makes for a dynamic non-local exit system)
a lexical non-local exit system
One can now say
label $foo | ..... | break $foo
where the break causes control to return to the label $foo, which
then produces empty
(backtracks). There's named and anonymous
labels.
tail call optimization (TCO), which allows efficient recursion in jq
a variety of new control structure builtins (e.g., while(cond; exp)
, repeat(exp)
, until(cond; next)
), many of which internally use TCO
an enhanced form of reduce
: foreach exp as $name (init_exp; update_exp; extract_exp)
the ability to read module data files
import "foo/bar" as $bar; # read foo/bar.json, bind to $bar::bar
--argjson var '<JSON text>'
Using --arg var bit me too many times :)
--slurpfile var "filename"
Replaces the --argfile
form (which is now deprecated but remains for backward compatibility).
support for application/json-seq (RFC7464)
a large variety of new utility functions, many being community contributions (e.g., bsearch
, for binary searching arrays)
datetime functions
a variety of performance enhancements
def($a): ...;
is now allowed as an equivalent of def(a): a as $a | ...;
test and build improvements, including gcov support
Lastly, don't forget the wiki! The wiki has a lot of new content since 1.4, much of it contributed by the community.
Published by dtolnay about 9 years ago
jq 1.1
Published by dtolnay about 9 years ago
jq 1.0
Published by dtolnay about 9 years ago
jq 1.2
Published by dtolnay about 9 years ago
The manual for jq 1.3 can be found at https://stedolan.github.io/jq/manual/v1.3/
Published by dtolnay about 9 years ago
The manual for jq 1.4 can be found at https://stedolan.github.io/jq/manual/v1.4/
Published by nicowilliams about 9 years ago
Thanks to the 20+ developers who have sent us PRs since 1.4, and the many contributors to issues and the wiki. We're nearing a 1.5 release, finally.
Salient new features since 1.4:
regexp support (using Oniguruma)!
a proper module system
import "foo/bar" as bar; # import foo/bar.jq's defs into a bar::* namespace
and
include "foo/bar"; # import foo/bar.jq's defs into the top-level
destructuring syntax (. as [$first, $second, {$foo, $bar}] | ...
)
math functions
an online streaming parser
minimal I/O builtions (inputs
, debug
)
One can now write:
jq -n 'reduce inputs as $i ( ... )'
to reduce inputs in an online way without having to slurp them first! This works with streaming too.
try/catch, for catching and handling errors (this makes for a dynamic non-local exit system)
a lexical non-local exit system
One can now say
label $foo | ..... | break $foo
where the break causes control to return to the label $foo, which
then produces empty
(backtracks). There's named and anonymous
labels.
tail call optimization (TCO), which allows efficient recursion in jq
a variety of new control structure builtins (e.g., while(cond; exp)
, repeat(exp)
, until(cond; next)
), many of which internally use TCO
an enhanced form of reduce
: foreach exp as $name (init_exp; update_exp; extract_exp)
the ability to read module data files
import "foo/bar" as $bar; # read foo/bar.json, bind to $bar::bar
--argjson var '<JSON text>'
Using --arg var bit me too many times :)
--slurpfile var "filename"
Replaces the --argfile
form (which is now deprecated but remains for backward compatibility).
support for application/json-seq (RFC7464)
a large variety of new utility functions, many being community contributions (e.g., bsearch
, for binary searching arrays)
datetime functions
a variety of performance enhancements
def($a): ...;
is now allowed as an equivalent of def(a): a as $a | ...;
test and build improvements, including gcov support
Lastly, don't forget the wiki! The wiki has a lot of new content since 1.4, much of it contributed by the community.
Published by nicowilliams almost 10 years ago
Salient new features since 1.4:
regexp support (using Oniguruma)
an online streaming parser
Included is the ability to control reading of inputs from the jq
program, using the new input
and inputs
builtins.
Finally we can write:
jq -n 'reduce inputs as $i ( ... )' # reduce online!
to reduce inputs without slurping them first. This works with
streaming too.
try/catch, for catching and handling errors (this makes for a dynamic non-local exit system)
a lexical non-local exit system
Using try/catch to break out of control structures was not a good
thing. A lexical mechanism is.
You can now say
label $foo | ..... | break $foo
where the break causes control to return to the label $foo, which
then produces empty
(backtracks). There's named and anonymous
labels.
tail call optimization (TCO), which allows efficient recursion in jq
a variety of new control structure builtins (e.g., while(cond; exp)
, repeat(exp)
, until(cond; next)
)
an enhanced form of reduce
: foreach exp as $name (init_exp; update_exp; extract_exp)
a proper module system
import "foo/bar" as bar; # import foo/bar.jq's defs into a bar::* namespace
the ability to read module data files
import "foo/bar" as $bar; # read foo/bar.json, bind to $bar::bar
--argjson var '<JSON text>'
Using --arg var bit me too many times :)
--in-place
/ -i
for in-place editing of files
support for application/json-seq.
a variety of new utility functions, many being community contributions
a variety of performance enhancements (e.g., constant folding)
def($a): ...;
is now allowed as an equivalent of def(a): a as $a | ...;
Lastly, don't forget the wiki! It has a lot of new content since 1.4, much of it contributed by the community.