A CLI tool to edit simple JSON and YAML data files
Project description
sde
sde
is not sed
. It's a structured data editor for CLI.
Why?
Many people asked for a simple JSON in-place editing and jq
was the solution:
- Modify a key-value in a json using jq in-place
- How to modify a key's value in a JSON file from command line
jq '.address = "abcde"' test.json|sponge test.json
Does this seem readable or elegant to you?
sde
is not a substitue for jq
or sed
.
It allows simple in-place JSON value changes, for simple data.
{
"name":"John",
"age":31,
"city":"New York",
"extra": {
"sex": "male"
}
}
Modify data
sde name Jack data.json
sde extra.sex female data.json
It is possible to modify data in arrays, e.g.:
{
"pools": [
{
"tls": false,
"rig-id": null,
"nicehash": false,
"url": "pool.hashvault.pro:80",
"user": "YOUR_WALLET_ADDRESS",
"pass": "x",
"enabled": true,
"daemon": false,
"algo": null,
"tls-fingerprint": null,
"keepalive": false
}
],
}
Update first pool's pass
value to value secret
:
sde pools.0.pass secret data.json
Installation for CentOS/RHEL 7, 8 or Amazon Linux 2
sudo yum -y install https://extras.getpagespeed.com/release-latest.rpm
sudo yum -y install sde
Installation for other systems
Installing with pip
is easiest:
pip install sde
Notes
Quoting is avoided for null
, true
, false
and numeric values.
To ensure that a given value is quoted, use -s
(or --string
) option:
sde -s key null file.json
If you must edit the file, by ensuring to update only the existing key, use -e
(--must-exist
)
option. The program will exit without adding the key which doesn't exist.
sde -e key val file.json
TODO
Work with stdin
echo $json | sde name Jack
Query simple data
sdg name data.json
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file sde-1.0.1.tar.gz
.
File metadata
- Download URL: sde-1.0.1.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.7.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e4d83f824b7504023709f26461ae9f3a6fc02cfa949c38b065316bc95eeaa69 |
|
MD5 | d926c2f10513198f5baf1b199aa28e44 |
|
BLAKE2b-256 | 999932988926e6d5f1a4e4016d287577d53cda30f2de76c2298b1f9a0f67f442 |
File details
Details for the file sde-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: sde-1.0.1-py3-none-any.whl
- Upload date:
- Size: 8.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.7.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b97cf57b5a3b06ec0ab510224db035e62088ccfc49d07b2f15dc384f674de835 |
|
MD5 | 0403262ec3fca7027e69ef3f6d62371c |
|
BLAKE2b-256 | 7bb69eb63008efb2e9e4730ad419fc5039445864768bd8bf433dc221327dd3bd |