Last updated 2 years ago
The follow examples show a set of commands and the equivalent in dasel.
echo '{"name": "Tom"}' | jq '.name' "Tom"
echo '{"name": "Tom"}' | dasel -p json '.name' "Tom"
echo '{"user": {"name": "Tom", "age": 27}}' | jq '.user.age' 27
echo '{"user": {"name": "Tom", "age": 27}}' | dasel -p json '.user.age' 27
echo '[1, 2, 3]' | jq '.[1]' 2
echo '[1, 2, 3]' | dasel -p json '.[1]' 2
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" ]
echo '["a", "b", "c"]' | jq '.[1] = "d"' [ "a", "d", "c" ]
echo '["a", "b", "c"]' | dasel put string -p json '.[1]' d [ "a", "d", "c" ]
echo '[1, 2, 3]' | jq '.[1] = 5' [ 1, 5, 3 ]
echo '[1, 2, 3]' | dasel put int -p json '.[1]' 5 [ 1, 5, 3 ]
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" } }
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" } ] }