mlr

mlr

like awk, sed, cut and join, but for CSV, TSV and JSON

curl -fsSL https://unflab.app/get | sh -s -- mlr

Installs to ~/.local/bin. Add --prefix /usr/local/bin to
put it somewhere else, or --uninstall to remove it.

Why it’s here

No dependency problem to solve — it’s here so it installs the same way as everything else.

Details

Original package miller
Version 6.22.0
Licence BSD-2-Clause
Upstream https://miller.readthedocs.io/
Source v6.22.0.tar.gz
Version check mlr --version
Download unflab-mlr-6.22.0-arm64-apple-darwin.tar.gz

Built from that exact tarball, with its SHA-256 pinned in the
recipe. The binary links against nothing outside /usr/lib
and /System/, checked in CI before release.


Miller (mlr) does for CSV, TSV and JSON what awk, sed, cut,
join and sort do for plain text — but name-aware, so you work with
columns by name rather than by position.

mlr --icsv --opprint cat data.csv           # pretty-print a CSV
mlr --icsv --ojson head -n 5 data.csv       # CSV to JSON
mlr --csv filter '$quantity > 10' data.csv
mlr --csv sort -f name then stats1 -a sum,mean -f price -g category data.csv

man mlr and https://miller.readthedocs.io/ have the full command set.

Install

./install.sh                      # into ~/.local/bin
./install.sh --prefix /usr/local/bin
./install.sh --uninstall

About this build

A single Go binary built with CGO_ENABLED=0, so it links only
libSystem — no package manager, no runtime dependencies.

The command is mlr, not miller; that’s upstream’s name and predates
the Go rewrite.

Upstream publishes prebuilt macOS binaries too. This package exists so
mlr installs the same way as everything else here.

Upstream

Miller is John Kerl’s work. unflab only compiles and packages it.