A Quick and Dirty List of Shell-Scriptable Tools You'll Rarely Ever Need
…and indicate you should’ve used Python
→ jq - JSON processing as a CLI
Grepping and cutting within minified JSON APIs is…not fun, to say the
least. What if you had a way to parse it properly? jq lets you do
just that — and everything else you could possibly want to do to
arbitrary structured data — by either vibe coding with your LLM of
choice, querying a search engine you still haven’t decided on, or by
reading the man page, like a nerd.
→ XMLStarlet - Doing absolutely everything you can imagine to well-formed XML
Similarly to jq, xmlstarlet also deals with structured data —
Because apparently we can’t agree on a one-size-fits all standard.
Aside from escaping and unescaping streamed data, it can also edit, beautify (format, as it calls it), extract data from, list the filesystem as, canonicalize — an euphemism for ‘fix your weird misuses of insignificant whitespace’ — validate and do magic on pretty much arbitrary XML, as long as it’s valid…enough.
→ zopflipng - For when you have too much time and a high-fidelity scan
Don’t you just hate when you have to downscale the document you
scanned at 1200dpi — for no reason at all — to something sane
because it’s over five megabytes? Then zopflipng can’t help you,
unless you actually have way, way too much time on your hands. If
you don’t, it’s still useful for shaving off a few bits from
lower-resolution icons. (Of course, you can still waste time by spamming
-m enough times.)
→ ImageMagick/Graphicsmagick - when GIMP is too heavy
Two related tools for image conversion and procedural(?) editing. gm
is slightly less powerful but should be nicer on licensing, while
magick is the upstream and has a less stable interface. Use what
you prefer, or use neither.
I primarily use it for when I need to operate on a ton of images —
mogrify is your friend, although nowadays it should be invoked as
(magick|gm) mogrify — I’m sure they’re not deprecating the legacy
variant any time soon, though, too much breakage.