A commandline based pretty printer for FIX messages.
Based on a FIX4.4 dictionary, but is usable with all versions.
input can be passed in as an argument or piped in:
prefix "8=FIX4.4|1=test|55=EUR/USD|10=123|"
echo "8=FIX4.4|1=test|55=EUR/USD|10=123|" | prefix
outputs:
BeginString = FIX4.4
Account = test
Symbol = EUR/USD
CheckSum = 123
Currently can use ^ and | and SOH as delimiters.
Use prefix --help
or man prefix
for more details.
Unix piping greatly increases the potential uses. For example: Parsing a log file and aligning the values for easy scan reading.
# Pipe the file contents to prefix which parses and pipes them to awk, which prints them aligned.
cat example.txt | prefix -v | awk '{printf("%-20s %-30s\n", $1,$3)}'
outputs:
BeginString FIX.4.4
Account TEST
Symbol EUR/USD
ExecType PartialFill
Or summarising a log file that includes FIX messages.
# Pipe the file contents to prefix which then summarises the FIX messages by instrument
cat example.log | prefix --summary 55 --only-fix | sort | uniq --count
outputs:
4 NewOrderSingle EUR/USD
4 ExecutionReport EUR/USD
2 NewOrderSingle USD/KRW
2 ExecutionReport USD/KRW
Can be installed using:
cargo install prefix
Any bugs/ requests can be added to the issues page on the github repository.