Examples#

OCDS Kit#

Download a list of release packages:

curl http://www.contratosabiertos.cdmx.gob.mx/api/contratos/array > release_packages.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

Pretty print a JSON Lines file:

python -m json.tool --json-lines 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.