Version 0.2.2 behavior is documented here. Thesupport record separates local verification frompublished MoonX behavior; moonx examples use registry releases.
Join lines of two files sorted on their join fields:
Options: -1 N / -2 N choose the join field in each file (default 1), -zuses NUL-delimited records. -t CHAR selects a single-byte field separator(default: runs of blanks,output separated by a single space). -a 1|2 includes unpairable rows,-v 1|2 selects only unpairable rows, and -e STRING supplies missing or emptyfields. -i / --ignore-case ignores ASCII case while comparing keys, preserving originalbytes in output. --header emits the first records together without comparingtheir keys or checking header order, including with -v.
-o LIST selects join/output fields. -o auto freezes the number of fieldsfrom each first record (the header with --header), omits later extra fields,and pads missing fields with the -e replacement or empty fields. Repeatedexplicit output lists accumulate and take precedence over auto in eitherargument order.
--check-order rejects an out-of-order input key immediately;--nocheck-order disables order checks. The last order flag takes effect.The default reports disorder after an unpairable row makes it observable,continues output, and exits nonzero at the end. Diagnostics identify the inputfile, record number and offending record.The merge streams both inputs and retains only the current equal-key runs.Use - for either input to read stdin; selecting stdin for both inputs isrejected before reading either one.
Standalone --version prints exactly join 0.2.2 followed by onenewline. Standalone --help starts with Usage: join, lists bothmetadata options, and ends with a newline. Both write to stdout, leave stdinunread, and exit with status 0. Exact-version publication and verificationremain recorded separately in the support record.