Examples

OCDS Kit

Download a list of release packages:

curl http://www.contratosabiertos.cdmx.gob.mx/api/contratos/array > release_packages.json

Validate each with a remote schema file:

cat release_packages.json | ocdskit --encoding iso-8859-1 validate --schema https://standard.open-contracting.org/schema/1__0__3/release-package-schema.json

Or, validate each with a local schema file:

cat release_packages.json | ocdskit --encoding iso-8859-1 validate --schema file:///path/to/release-package-schema.json

Transform it to a stream of compiled releases:

cat release_packages.json | ocdskit --encoding iso-8859-1 compile > compiled_releases.json

Command line

On Windows, you may need to install Cygwin to use some command-line tools. PowerShell has some corresponding tools.

Pretty print a JSON file:

python -m json.tool filename.json

Read the first 1000 bytes of a file:

head -c 1000 filename.json

Read line 10,000 of a file:

sed -n '10000 p' < filename.json

Read the first 10 lines of a file:

cat filename.json | head -n 10

Read the last 10 lines of a file:

cat filename.json | tail -n 10

Get lines 21-30 of a file:

cat filename.json | tail -n +20 | head -n 10

Split each line of a file into new files named xaaaa, xaaab, xaaac, etc.:

cat filename.json | split -l 1 -a 4

Add newlines to ends of files (Fish shell):

for i in *.json; echo >> $i; end

jq

jq has a very good tutorial and manual.

Find a compiled release with a given ocid (replace the ocid value):

jq 'select(.ocid == "OCDS-87SD3T-AD-SF-DRM-063-2015")' releases.json

If the file is large, jq commands can consume GBs of memory. See this StackOverflow answer.