A variant of the unix 'cut' program, with the ability to reorder fields.
tsv-select is a variation on the Unix 'cut' utility, with the added ability to reorder fields. Lines are read from files or standard input and split on a delimiter character. Fields are written to standard output in the order listed. Fields can be listed more than once, and fields not listed can be written out as a group.
This program is intended both as a useful utility and a D programming language example. Functionality and constructs used include command line argument processing, file I/O, exception handling, ranges, tuples and strings, templates, universal function call syntax (UFCS), lambdas and functional programming constructs. Comments are more verbose than typical to shed light on D programming constructs, but not to the level of a tutorial.
Copyright (c) 2015-2021, eBay Inc. Initially written by Jon Degenhardt
Enumeration of the different specializations of the tsvSelect template.
tsvSelect does the primary work of the tsv-select program.
Container for command line options.