A bunch of jq
snippets and shell scripts to manipulate JSON files. See also jqnpm
for jq
modules/packages.
jq is a lightweight and flexible command-line JSON processor.
No future updates are planned. Feel free to continue using it, but expect no support.
Just clone the repository.
git clone --recursive git://github.com/joelpurra/jq-hopkok.git
See README.md
each folder, as well as source files. Don't expect much documentation yet.
$ tree src
src
├── array
│ ├── README.md
│ ├── take.sh
│ ├── to-array.sh
│ └── unwrap-array.sh
├── dynamic
│ ├── README.md
│ └── concat.sh
├── metadata
│ ├── README.md
│ └── structure.sh
├── object
│ ├── README.md
│ ├── as-object.sh
│ ├── merge.sh
│ ├── reduce-merge-deep-add.sh
│ └── sort-object-keys-deep.sh
├── parallelism
│ ├── README.md
│ ├── dataset-foreach.sh
│ ├── dataset-query.sh
│ ├── parallel-chunks.sh
│ └── parallel-n-2.sh
├── tabular
│ ├── README.md
│ ├── array-of-objects-to-csv.sh
│ ├── array-of-objects-to-tsv.sh
│ ├── clean-csv-sorted-header.sh
│ └── clean-tsv-sorted-header.sh
└── url
├── README.md
├── from-components.sh
└── to-components.sh
7 directories, 26 files
The library was built awaiting a jq module/package system, but also to collect shell utils for JSON manipulation. Some of these utils can be converted to packages, while others rely on external programs such as the bash
shell.
Most utils were written for jq v1.4, and some can be probably be significantly improved with v1.5+ features. When the time comes, the plan is to maintain a branch per jq version for backwards compatibility.
jq-hopkok's runtime dependencies:
Some utils also use:
jqnpm
forjq
modules/packages.- The
jq
wiki's cookbook for examples and smart solutions. - har-dulcify for the origin of some utils, as well as example usage -- especially of the parallelism utils.
- ep-erroneous-votes for the origin of some utils, and example usage.
Patches/pull requests welcome!
- Write tests.
- Break out jq scripts from shell scripts.
- Split up files into smaller parts.
Copyright (c) 2014, 2015, Joel Purra https://joelpurra.com/ All rights reserved.
When using jq-hopkok, comply to at least one of the three available licenses: BSD, MIT, GPL. Please see the LICENSE file for details.