JQ to Dasel
The follow examples show a set of jq commands and the equivalent in dasel.
Select a single value
echo '{"name": "Tom"}' | jq '.name'
"Tom"echo '{"name": "Tom"}' | dasel -p json '.name'
"Tom"Select a nested value
echo '{"user": {"name": "Tom", "age": 27}}' | jq '.user.age'
27echo '{"user": {"name": "Tom", "age": 27}}' | dasel -p json '.user.age'
27Select an array index
echo '[1, 2, 3]' | jq '.[1]'
2echo '[1, 2, 3]' | dasel -p json '.[1]'
2Append to an array of strings
echo '["a", "b", "c"]' | jq '. += ["d"]'
[
"a",
"b",
"c",
"d"
]echo '["a", "b", "c"]' | dasel put string -p json -s '.[]' d
[
"a",
"b",
"c",
"d"
]Update a string value
echo '["a", "b", "c"]' | jq '.[1] = "d"'
[
"a",
"d",
"c"
]echo '["a", "b", "c"]' | dasel put string -p json '.[1]' d
[
"a",
"d",
"c"
]Update an int value
echo '[1, 2, 3]' | jq '.[1] = 5'
[
1,
5,
3
]echo '[1, 2, 3]' | dasel put int -p json '.[1]' 5
[
1,
5,
3
]Overwrite an object
echo '{"user": {"name": "Tom", "age": 27}}' | jq '.user = {"name": "Frank", "age": 25}'
{
"user": {
"name": "Frank",
"age": 25
}
}echo '{"user": {"name": "Tom", "age": 27}}' | dasel put object -p json -t string -t int '.user' name=Frank age=25
{
"user": {
"age": 25,
"name": "Frank"
}
}echo '{"user": {"name": "Tom", "age": 27}}' | dasel put document -p json '.user' '{"name": "Frank", "age": 25}'
{
"user": {
"age": 25,
"name": "Frank"
}
}Append to an array of objects
echo '{"users": [{"name": "Tom"}]}' | jq '.users += [{"name": "Frank"}]'
{
"users": [
{
"name": "Tom"
},
{
"name": "Frank"
}
]
}echo '{"users": [{"name": "Tom"}]}' | dasel put object -p json -t string '.users.[]' name=Frank
{
"users": [
{
"name": "Tom"
},
{
"name": "Frank"
}
]
}echo '{"users": [{"name": "Tom"}]}' | dasel put document -p json '.users.[]' '{"name":"Frank"}'
{
"users": [
{
"name": "Tom"
},
{
"name": "Frank"
}
]
}Last updated