Being a Good Unix Neighbour
leblancfg.com
leblancfg.com
> Take for example this one-liner:
> [program listing...]
> In this condensed program of 4 lines, the following happens:
Right a "one" liner I see...once it gets above roughly 100 characters you are no longer allowed to call it a "one liner"
and style note putting the pipe"|" at the end of the command instead of the beginning acts as a natural break and lets you avoid the backslash escaped newline nonsense.
curl ... |
jq ... |
awk ....
vs curl ... \
| jq ... \
| awk ...(To be clear, this sounds like a complaint, and it kind of is, but I think the article is actually quite good if we just ignore that one basically irrelevant detail)
Some time ago I wrote a bunch of tips to make more ergonomic bash scripts: https://raimonster.com/scripting-field-guide/index.html
Also, Perl's diamond operator does the DWIM thing with files/stdin, and it's used directly as a line iterator. It handles multiple files (or none) in a row, which is a nice plus :) https://perlmaven.com/the-diamond-operator
Being a good neighbour involves a bit more than reading from standard input and being about to send JSON to standard output; and there's more to be said about the field parsing, including that fields must not contain interior whitespace, for which vis(1) encoding is a good idea.
Thankfully, there'll never be one!