The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

txdfilter - filter textual data files

DESCRIPTION

This program filters/transforms textual data files (pipe operation) concering the syntax and header stuff. The data itself is preserved. Any Parameters after options are file title and data column titles (overriding the named parameters).

PARAMETERS

These are the general rules for specifying parameters to this program:

        txdfilter -s -xyz -s=value --long --long=value [--] [files/stuff]

You mention the options to change parameters in any order or even multiple times. They are processed in the oder given, later operations overriding/extending earlier settings. Using the separator "--" stops option parsing An only mentioned short/long name (no "=value") means setting to 1, which is true in the logical sense. Also, prepending + instead of the usual - negates this, setting the value to 0 (false). Specifying "-s" and "--long" is the same as "-s=1" and "--long=1", while "+s" and "++long" is the sames as "-s=0" and "--long=0".

There are also different operators than just "=" available, notably ".=", "+=", "-=", "*=" and "/=" for concatenation / appending array/hash elements and scalar arithmetic operations on the value. Arrays are appended to via "array.=element", hash elements are set via "hash.=name=value". You can also set more array/hash elements by specifying a separator after the long parameter line like this for comma separation:

        --array/,/=1,2,3  --hash/,/=name=val,name2=val2

The available parameters are these, default values (in Perl-compatible syntax) at the time of generating this document following the long/short names:

black (scalar)
        0

ignore whitespace at beginning and end of line (disables strict mode) (from Text::NumericData)

coltitles, i (array)
        []

new column titles (as in "title1","title2","title3")

comchar (scalar)
        undef

comment character (if not set, deduce from data or use #) (from Text::NumericData)

comment, C (array)
        []

comment to include between file title and column titles, lines in array

comregex (scalar)
        '[#%]*[^\\S\\015\\012]*'

regex for matching comments (from Text::NumericData)

config, I (array)
        []

Which configfile(s) to use (overriding automatic search in likely paths); special: just -I or --config causes printing a current config file to STDOUT

data (scalar)
        1

include the data in printout

delaftercom, D (scalar)
        0

delete any comment lines after data

empty (scalar)
        0

treat empty lines as empty data sets, preserving them in output (from Text::NumericData)

fdex, F (scalar)
        ''

regex for first data line (alterative to lhex)

fill (scalar)
        undef

fill value for undefined data (from Text::NumericData)

head (scalar)
        1

include the header in printout

headlines, H (scalar)
        undef

use this fixed number of lines as header (overriding any heuristics)

help, h (scalar)
        0

Show the help message. Value 1..9: help level, par: help for paramter par (long name) only.

Additional fun with negative values, optionally followed by comma-separated list of parameter names: -1: list par names, -2: list one line per name, -3: -2 without builtins, -10: dump values (Perl style), -11: dump values (lines), -100: print POD.

history (scalar)
        0

keep old title(s) lines as historic comments (writing new overall title before, new column titles below), otherwise replace them

index, x (scalar)
        0

Add a dataset index as first column (maybe just to make other tools happy so with the data lines not starting with text). You can influence the column name via modtitles.

lhex, L (scalar)
        ''

regex for last header line (alternative to fdex)

lineend (scalar)
        undef

line ending to use: (DOS, MAC, UNIX or be explicit if you can, taken from data if undefined, finally resorting to UNIX) (from Text::NumericData)

modtitles, m (hash)
        {}

modify existing titles... hash with column indices as key, in Perl: (1=>"NeSpalte",4=>"AndereSpalte")

newhead, n (scalar)
        0

make completely new header

numformat, N (array)
        []

printf formats to use (if there is no "%" present at all, one will be prepended) (from Text::NumericData)

numregex (scalar)
        '[\\+\\-]?\\d*\\.?\\d*[eE]?\\+?\\-?\\d*'

regex for matching numbers (from Text::NumericData)

origin, o (scalar)
        0

create Origin-friendly format with tab separation and coltitles as only header line and NO comment character, triggers also quote=0 and delaftercom=1

outsep (scalar)
        undef

use this separator for output (leave undefined to use input separator, fallback to TAB) (from Text::NumericData)

quote (scalar)
        undef

quote titles (from Text::NumericData)

quotechar (scalar)
        undef

quote character to use (derived from input or ") (from Text::NumericData)

separator (scalar)
        undef

use this separator for input (otherwise deduce from data; TAB is another way to say "tabulator", fallback is ) (from Text::NumericData)

strict, S (scalar)
        0

strictly split data lines at configured separator (otherwise more fuzzy logic is involved) (from Text::NumericData)

text, T (scalar)
        1

allow text as data (not first column) (from Text::NumericData)

title, t (scalar)
        undef

new title

touchdata (scalar)
        1

touch the data lines (otherwise just copy them)

touchhead (scalar)
        1

touch the header (otherwise just copy)

version (scalar)
        0

print out the program version

AUTHOR

Thomas Orgis <thomas@orgis.org>

LICENSE AND COPYRIGHT

Copyright (c) 2005-2023 Thomas Orgis, Free Software licensed under the same terms as Perl 5.10