Undocumented in source.
auto helpText = q"EOS Synopsis: tsv-filter [options] [file...] Filter tab-delimited files for matching lines via comparison tests against individual fields. Use '--help-verbose' for a more detailed description. Fields are specified using field number or field name. Field names require that the input file has a header line. Use '--help-fields' for details. Global options: --help-verbose Print full help. --help-options Print the options list by itself. --help-fields Print help on specifying fields. --V|version Print version information and exit. --H|header Treat the first line of each file as a header. --or Evaluate tests as an OR rather than an AND clause. --v|invert Invert the filter, printing lines that do not match. --c|count Print only a count of the matched lines. --d|delimiter CHR Field delimiter. Default: TAB. --label STR Rather than filter, mark each record as passing the filter or not. STR is the header, ignored if there is no header line. --label-values STR1:STR2 The pass/no-pass values used by '--label'. Defaults to '1' and '0'. --line-buffered Immediately output every matched line. Operators: * Test if a field is empty (no characters) or blank (empty or whitespace only). Syntax: --empty|not-empty|blank|not-blank FIELD Example: --empty name # True if the 'name' field is empty * Test if a field is numeric, finite, NaN, or infinity Syntax: --is-numeric|is-finite|is-nan|is-infinity FIELD Example: --is-numeric 5 --gt 5:100 # Ensure field 5 is numeric before --gt test. * Compare a field to a number (integer or float) Syntax: --eq|ne|lt|le|gt|ge FIELD:NUM Example: --lt size:1000 --gt weight:0.5 # ('size' < 1000) and ('weight' > 0.5) * Compare a field to a string Syntax: --str-eq|str-ne|istr-eq|istr-ne FIELD:STR Example: --str-eq color:red # True if 'color' field is "red" * Test if a field contains a string (substring search) Syntax: --str-in-fld|str-not-in-fld|istr-in-fld|istr-not-in-fld FIELD:STR Example: --str-in-fld color:dark # True if 'color field contains "dark" * Test if a field matches a regular expression. Syntax: --regex|iregex|not-regex|not-iregex FIELD:REGEX Example: --regex '3:ab*c' # True if field 3 contains "ac", "abc", "abbc", etc. * Test a field's character or byte length Syntax: --char-len-[le|lt|ge|gt|eq|ne] FIELD:NUM --byte-len-[le|lt|ge|gt|eq|ne] FIELD:NUM Example: --char-len-lt 2:10 # True if field 2 is less than 10 characters long. --byte-len-gt 2:10 # True if field 2 is greater than 10 bytes long. * Field to field comparisons - Similar to field vs literal comparisons, but field vs field. Syntax: --ff-eq|ff-ne|ff-lt|ff-le|ff-gt|ff-ge FIELD1:FIELD2 --ff-str-eq|ff-str-ne|ff-istr-eq|ff-istr-ne FIELD1:FIELD2 Example: --ff-eq 2:4 # True if fields 2 and 4 are numerically equivalent --ff-str-eq 2:4 # True if fields 2 and 4 are the same strings * Field to field difference comparisons - Absolute and relative difference Syntax: --ff-absdiff-le|ff-absdiff-gt FIELD1:FIELD2:NUM --ff-reldiff-le|ff-reldiff-gt FIELD1:FIELD2:NUM Example: --ff-absdiff-lt 1:3:0.25 # True if abs(field1 - field2) < 0.25 EOS";