GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - caltechlibrary/datatools: A set of tools for working with JSON, CSV and Excel workbooks

BranchesTags
Open more actions menu

Latest commit

 

History

479 Commits
479 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
assets
assets
 
 
cmd
cmd
 
 
codemeta
codemeta
 
 
css
css
 
 
docs
docs
 
 
how-to
how-to
 
 
reldate
reldate
 
 
snap
snap
 
 
timefmt
timefmt
 
 
.gitignore
.gitignore
 
 
.nojekyll
.nojekyll
 
 
CITATION.cff
CITATION.cff
 
 
INSTALL.html
INSTALL.html
 
 
INSTALL.md
INSTALL.md
 
 
INSTALL_NOTES_Windows.html
INSTALL_NOTES_Windows.html
 
 
INSTALL_NOTES_Windows.md
INSTALL_NOTES_Windows.md
 
 
INSTALL_NOTES_macOS.html
INSTALL_NOTES_macOS.html
 
 
INSTALL_NOTES_macOS.md
INSTALL_NOTES_macOS.md
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
TODO.html
TODO.html
 
 
TODO.md
TODO.md
 
 
add-col-scope.lua
add-col-scope.lua
 
 
codemeta-bash-installer.tmpl
codemeta-bash-installer.tmpl
 
 
codemeta-cff.tmpl
codemeta-cff.tmpl
 
 
codemeta-md.tmpl
codemeta-md.tmpl
 
 
codemeta-ps1-installer.tmpl
codemeta-ps1-installer.tmpl
 
 
codemeta-version-go.tmpl
codemeta-version-go.tmpl
 
 
codemeta.json
codemeta.json
 
 
codemeta2cff.1.html
codemeta2cff.1.html
 
 
codemeta2cff.1.md
codemeta2cff.1.md
 
 
codemetaCli.go
codemetaCli.go
 
 
csv.go
csv.go
 
 
csv2json.1.html
csv2json.1.html
 
 
csv2json.1.md
csv2json.1.md
 
 
csv2jsonl.1.html
csv2jsonl.1.html
 
 
csv2jsonl.1.md
csv2jsonl.1.md
 
 
csv2mdtable.1.html
csv2mdtable.1.html
 
 
csv2mdtable.1.md
csv2mdtable.1.md
 
 
csv2tab.1.html
csv2tab.1.html
 
 
csv2tab.1.md
csv2tab.1.md
 
 
csv2xlsx.1.html
csv2xlsx.1.html
 
 
csv2xlsx.1.md
csv2xlsx.1.md
 
 
csvcleaner.1.html
csvcleaner.1.html
 
 
csvcleaner.1.md
csvcleaner.1.md
 
 
csvcols.1.html
csvcols.1.html
 
 
csvcols.1.md
csvcols.1.md
 
 
csvfind.1.html
csvfind.1.html
 
 
csvfind.1.md
csvfind.1.md
 
 
csvjoin.1.html
csvjoin.1.html
 
 
csvjoin.1.md
csvjoin.1.md
 
 
csvrows.1.html
csvrows.1.html
 
 
csvrows.1.md
csvrows.1.md
 
 
datatools.go
datatools.go
 
 
datatools_test.go
datatools_test.go
 
 
finddir.1.html
finddir.1.html
 
 
finddir.1.md
finddir.1.md
 
 
findfile.1.html
findfile.1.html
 
 
findfile.1.md
findfile.1.md
 
 
gen-manpages-source.bash
gen-manpages-source.bash
 
 
go.mod
go.mod
 
 
go.sum
go.sum
 
 
index.html
index.html
 
 
installer.ps1
installer.ps1
 
 
installer.sh
installer.sh
 
 
json2jsonl.1.html
json2jsonl.1.html
 
 
json2jsonl.1.md
json2jsonl.1.md
 
 
json2toml.1.html
json2toml.1.html
 
 
json2toml.1.md
json2toml.1.md
 
 
json2yaml.1.html
json2yaml.1.html
 
 
json2yaml.1.md
json2yaml.1.md
 
 
json_handlers.go
json_handlers.go
 
 
jsoncols.1.html
jsoncols.1.html
 
 
jsoncols.1.md
jsoncols.1.md
 
 
jsonjoin.1.html
jsonjoin.1.html
 
 
jsonjoin.1.md
jsonjoin.1.md
 
 
jsonmunge.1.html
jsonmunge.1.html
 
 
jsonmunge.1.md
jsonmunge.1.md
 
 
jsonobjects2csv.1.html
jsonobjects2csv.1.html
 
 
jsonobjects2csv.1.md
jsonobjects2csv.1.md
 
 
jsonrange.1.html
jsonrange.1.html
 
 
jsonrange.1.md
jsonrange.1.md
 
 
links-to-html.lua
links-to-html.lua
 
 
make.bat
make.bat
 
 
mergepath.1.html
mergepath.1.html
 
 
mergepath.1.md
mergepath.1.md
 
 
page.tmpl
page.tmpl
 
 
range.1.html
range.1.html
 
 
range.1.md
range.1.md
 
 
rangeexpr.go
rangeexpr.go
 
 
rangeexpr_test.go
rangeexpr_test.go
 
 
reldate.1.html
reldate.1.html
 
 
reldate.1.md
reldate.1.md
 
 
reldocpath.1.html
reldocpath.1.html
 
 
reldocpath.1.md
reldocpath.1.md
 
 
release.bash
release.bash
 
 
reltime.1.html
reltime.1.html
 
 
reltime.1.md
reltime.1.md
 
 

Repository files navigation

datatools

datatools is a rich collection of command line programs targeting data conversion, cleanup and analysis directly from your favorite POSIX shell or Powershell. It has proven useful for data collaborations where individual members of a project may prefer different tool sets in their analysis (e.g. Julia, R, Python) but want to work from a common baseline. It also has been used intensively for internal reporting from various Caltech Library metadata sources.

The tools fall into three broad categories

  • data transformation and conversion
  • shell scripting helpers
  • "string", a tool providing the common string operations missing from shell

See user manual for a complete list of the command line programs. The data transformation tools include support for formats such as Excel XML, csv, tab delimited files, json, yaml, toml and url encoding/decoding.

Compiled versions of the datatools collection are provided for Linux (aarch64/amd64), Mac OS X (aarch64/amd64), Windows 10 (aarch64/amd64) and Raspberry Pi OS (aarch64). See https://github.com/caltechlibrary/datatools/releases.

Use "-help" option for a full list of options for each utility (e.g. csv2json -help).

Data transformation

The tooling around transformation includes data conversion. These include tools that work with CSV, tab delimited, JSON, TOML, YAML, Excel XML, and url encoded text.

There is also tooling to change data shapes using JSON as the intermediate data format.

For the shell

Various utilities for simplifying work on the command line.

  • mergepath - prefix, append, clip path variables
  • reldocpath - calculates relative paths given do paths
  • range - emit a range of integers (useful for numbered loops in Bash)
  • reldate - display a relative date in YYYY-MM-DD format
  • reltime - display a relative time in 24 hour notation, HH:MM:SS format
  • timefmt - format a time value based on Golang's time format language
  • urlparse - split a URL into parts

For strings

datatools provides the string command for working with text strings (limited to memory available). This is commonly needed when cleanup data for analysis. The string command was created for when the old Unix standbys- grep, awk, sed, tr are unwieldy or inconvenient. string provides operations are common in most language like, trimming, splitting, and transforming letter case. The string command also makes it easy to join JSON string arrays into single a string using a delimiter or split a string into a JSON array based on a delimiter. The form of the command is string [OPTIONS] [ACTION] [ACTION_PARAMETERS...]

    string toupper "one two three"

Would yield "ONE TWO THREE".

Some of the features included

  • change case (upper, lower, title, English title)
  • length, position and count of substrings
  • has prefix, suffix or contains
  • trim prefix, suffix and cutsets
  • split and join to/from JSON string arrays

See string for full details

Installation

See INSTALL.md for details for installing pre-compiled versions of the programs.

About

A set of tools for working with JSON, CSV and Excel workbooks

software.library.caltech.edu/datatools/

Topics

csvdata-mungingexcel-workbookjsonshell-scriptingstructured-dataxlsx

Resources

Readme
License
Activity
Custom properties

Stars

84 stars

Watchers

10 watching

Forks

9 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.