NAME
ansiprintf - ANSI terminal sequence aware printf command
SYNOPSIS
ansiprintf format args ...
VERSION
Version 2.0602
DESCRIPTION
This command is a simple wrapper command for Text::ANSI::Printf library. According to the format given in the first argument, it formats and outputs the remaining arguments.
Even if the string given as an argument contains ANSI terminal sequences, the formatting is done based on the visible width on the screen.
For example, next command
printf '|%-5s|%-5s|%-5s|\n' Red Green Blue
will print
|Red |Green|Blue |
and
ansiprintf '|%-5s|%-5s|%-5s|\n' \
$'\e[31mRed\e[m' $'\e[32mGreen\e[m' $'\e[34mBlue\e[m'
will produce same result with colored arguments.
You can give colored arguments with ansiecho(1) command:
ansiprintf '|%-5s|%-5s|%-5s|\n' $(ansiecho -cR Red -cG Green -cB Blue)
but this can be done with just ansiecho(1):
ansiecho -f '|%-5s|%-5s|%-5s|' -cR Red -cG Green -cB Blue
In addition to handling ANSI terminal sequences, ansisprintf has the following features.
- WIDE and COMBINING CHARACTERS
-
Asian wide characters are formatted according to the width displayed on the screen. Combining characters in other languages are also handled correctly.
- UNICODE CHARACTERS
-
You can give Unicode character in parameter strings by its name (
"\N{ALARM CLOCK}"
) or code ("\N{U+23F0}"
). - ARGUMENT REORDERING
-
You can specify the argument by position specifier like
%2$s %1ds
. Width, precision, vector string parameter also take position specifier.
This command supports all other features provided by the Perl interpreter. See "sprintf" in perlfunc or `perldoc -f sprintf` for more information.
SEE ALSO
AUTHOR
Kazumasa Utashiro
LICENSE
Copyright © 2023- Kazumasa Utashiro.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.