Flat file extractor (ffe) can be used for parsing different flat file structures
and printing them in different formats. ffe can also process fixed length binary files.
ffe is a command line tool developed in GNU/Linux environment
and it is distributed under GNU General Public License 2 or later.
ffe has been build using GNU autotools so it should be possible to build ffe in many kinds UNIX-like systems.
Main areas of use are:
Extracting particular fields or records from a flat file, text or binary
Converting data from one format to an other, e.g. from CSV to fixed length
Verifying a flat file structure
Testing tool for flat file development
Displaying flat file content in human readable form
Modifying flat file structures
Map flat file fields to another format
Reads standard input and writes to standard output as default
One input file can contain several types of records (lines or binary blocks)
Fields in a flat file can be fixed length text or binary fields or separated fields
Input file structure and output definitions are independent,
meaning one output format can be used with several input files
Input file structure and output format are configurable, they are not predefined
Output can be formatted e.g.: fixed length, separated, tokenized, XML, SQL,...
ffe tries to guess the input format, user needs not to give it as a parameter
2015-12-29: version 0.3.6, Field contents can be formatted using a filter program. Dynamic record length support implemented.
2015-08-30: version 0.3.5, Lookup uses hash tables for faster execution.
2012-11-11: version 0.3.3, Printing keyword "hex-caps" imlemented. Performance enhancements for large number of expression values .
2011-04-10: version 0.3.2, Input preprosessing implemented.
2010-09-29: version 0.3.1, Record keyword "level" and printing keywords "group-header", "group-trailer", "element-header" and "element-trailer implemented. These can be used to print flat file contents in structured format (e.g. multilevel XML). Record keyword "record-length" implemented. This can be used to ignore extra fields that are not defined for a record.
2010-03-25: version 0.3.0, Having the same field in several expression (option -e,--expression) works now. Earlier only the last expression in command line was used and option -X,--casecmp implemented
2009-11-02: version 0.2.9, New keyword "output-file" implemented for printing to different output files
2008-09-11: version 0.2.8, New keyword "rid" and option -l,--loose can be used also with binary files
2008-06-10: version 0.2.7, Ffe can now parse fixed length binary files, new output format "raw" and new option -I,--info
2008-05-08: version 0.2.6, Output format can be selected in field level, last field of a fixed length structure can have arbitrary length and option -d, --debug added
2008-03-18: version 0.2.5, New configuration keyword 'field-count' and command substitution for configuration file
2008-03-02: version 0.2.4, Bug fix: A fixed structure with 1 byte long last field does work now
2007-10-31: version 0.2.3, Values for expressions (option -e) can be read from a file
2007-05-30: version 0.2.2, Configuration keyword 'const' has been added
2007-04-25: version 0.2.1, Records can be selected using regular expressions
2007-04-11: version 0.2.0, Minor fixes
2007-03-15: version 0.1.9, Lookup tables added
2007-02-04: version 0.1.8, Minor bug fixes and windows executable
2006-11-05: version 0.1.7, Option '-r, --replace' and output directive '%p' added
2006-09-17: version 0.1.6, Option '-v, --invert-match' added
2006-06-07: version 0.1.5, Option '-a, --and' added, bug fixes
2006-04-28: version 0.1.4, Option '-e, --expression' added
2006-04-17: version 0.1.3, Directive %e added, bug fixes
2006-03-17: version 0.1.2, Options field-empty-print and empty-chars added to output definition
2006-03-09: version 0.1.1, FILLER field added, bug fixes