ryg

Команда printf в Mac OS X и FreeBSD

Синтаксис:

 printf format [arguments ...]

Описание:

Утилита printf для bash форматирует и печатает параметры, указанные после первого под управлением формата, заданного первым параметром. Строка форматирования может содержать три вида объектов: обычные символы, которые просто копируются в стандартный вывод,  управляющие последовательности, которые преобразуются перед копированием в стандартный вывод и спецификации формата.

Аргументы после первого параметра обрабатываются как строки, если они соответствуют формату или c , d или s. Лидирующий знак плюс "+" или минус "-" не допустимы, если начальные символы одинарные или двойные кавычки, то следующее за ними значение ASCII код.

Строка формата используется для обработки всех следующих за ней параметров.

Управляющие символы используются с обратным слэшем введенные в ANSI X3.159-1989 (``ANSI C89'') и могут быть следeющими: 

\a      Вывести символ сигнала <bell>.
    \b      Вывести символ <backspace>.
\c      Игнорировать требуемые символы в строке.
\f      Вывести символ перевода страницы<form-feed>.
\n      Вывести символ новой строки <new-line>.
\r      Вывести символ возврата каретки <carriage return>.
\t      Вывести символ табуляции <tab>.
\v      Вывести символ вертикальной табуляции <vertical tab> character.
\'      Вывести одиночные кавычки <single quote>.
\\      Вывести символ обратного слэша.
\num
\0num   Вывести символ, заданный восьмеричным числом.
 
В начале каждой спецификации формата должен быть символ процентов "%"
 
Символы используемые при описании формата:
diouXx Argument выводится как десятичное число со знаком (d или i), восьмеричное без знака (о), десятичное без знака (u) или шестнадцатеричное без знака (X или ч), соответственно.
fF

Argument будет напечатан в стиле '[-]ddd.ddd', где количество после точки d равно заданной точности выводимого аргумента. Если точность не задана, то по умолчанию будет шесть знаков; если точность указана 0, то после точки ничего не будет выведено; Бесконечное количество обозначается 'inf', ошибка NaN обозначается 'nan' (Not a Number) - неопределенное или непредставимое значение в операциях с плавающей точкой.

eE

Результат печатается в виде e `[-d.ddd+-dd]' где одна цифра перед десятичной точкой, затем после десятичной точкой заданноев спецификации число цифр (по умолчанию 6). Значения бесконечности и NaN выводятся как `inf' и `nan'.

gG Результат выводится как f(F) или e(E) в зависимости от того, что даст максимальную точность при минимальном количестве цифр.
aA Значение параметра argument выводится в виде шестнадцатеричного числа `[-h.hhh+-pd]'
c Вывести первый символ параметра argument.
s Выводятся символы строки, пока не будет достигнут конец строки или заданная точность (количество символов), если точность не указана или равна 0, то будут напечатаны все символы.
b Аналогично формату 's', но производить преобразование символов после обратной косой черты '\'
% Печатать %

Символ разделения целой и дробной части определен в региональных настройках (категория LC_NUMERIC).

Параметры спецификации формата:
 # Указывает, что значение должно быть напечатано в альтернативном варианте. Для форматов 'c','d' и 's' данный параметр ни на что не влияет и будет проигнорирован. Для формата 'o' точность числа будет увеличено для того, чтобы первый символ был 0. Для шестнадцатеричных чисел, формат 'x(X)', в начало будут добавлены символы 0x. Для форматов 'e', 'E', 'f', 'g', и 'G' всегда будет выведена десятичная точка. Для форматов 'g' и 'G' не будут удалены завершающие нули.
- Означает необходимость выравнивания по левому краю
+ В случае использования формата с знаком числа, всегда выводить перед числом его знак.
  Пробел. Если число положительное, то перед ним необходимо поставить пробел. Использование модификатора '+' отменяет действие пробела
0 Указывать ноль если аргумент пустой. Модификатор '-' отменяет действия '0'.

Примеры:

printf '%b\n' 'Команда,\nbash terminal'

Команда,
bash terminal
rintf '%b\n' Каждое слово в отдельной строке 
Каждое 
слово 
в 
отдельной 
строке
printf '%o\n' 777
1411
printf '%x\n' 177
b1
printf '%X\n' 177
B1
printf '%f\n' 17,7
17,700000
printf '%e\n' 177
1,770000e+02

Алфавитный перечень команд терминала в Mac OS X