В Linux команда printf
используется для отображения форматированного текста, цифр или других типов данных непосредственно в терминале.

Эта утилита позволяет форматировать вывод с большой точностью, что делает её идеальной для сценариев и операций, требующий индивидуальный вывод.
Содержание
Установка
Утилита printf
не нуждается в установке, ибо она встроена в Bash и другие популярные оболочки. Встроенная в оболочку версия имеет преимущество перед автономной.
Синтаксис
$ printf [-v переменная] формат [аргументы]
FORMAT: Строка символов, которая содержит три типа объектов: простые символы, которые просто копируются в стандартный вывод; управляющие последовательности символов, которые преобразуются и копируются в стандартный вывод; и спецификации формата, каждая из которых вызывает печать следующего последовательного аргумента.
АРГУМЕНТЫ: Значения, которые должны быть вставлены в заполнители, определённые в строке FORMAT.
Параметры
-v var
Назначить вывод переменной оболочки VAR вместо того, чтобы отображать его на стандартном выводе
Спецификаторы форматов команды printf
Команда printf
поддерживает широкий спектр спецификаторов формата и последовательностей убегания, которые управляют выходным форматом.
Спецификатор | Описание | Пример команды | Выход |
---|---|---|---|
%s | Печатает строку | printf "%s\n" "Linux" | Linux |
%b | Печатает строку с обработкой последовательности убегания | printf "%b\n" "Line1\nLine2" | Line1 Line2 |
%d или %i | Печатает подписанное десятичное целое число | printf "%d\n" | 42 42 |
%u | Печатает неподписанное десятичное целое число | printf "%u\n" | 300 300 |
%x | Печатает шестнадцатеричное целое число (низшее) | printf "%x\n" | 255 ff |
%X | Печатает шестнадцатеричное целое число (uppercase) | printf "%X\n" | 255 FF |
%o | Печатает восьмеричное целое число | printf "%o\n" | 64 100 |
%f | Печатает номер с плавающей запятой | printf "%.2f\n" | 3.14159 3.14 |
%e | Печатает научную нотацию (нижнюю) | printf "%e\n" | 12345.678 1.234568e+04 |
%E | Печатает научную нотацию (uppercase) | printf "%E\n" | 12345.678 1.234568E+04 |
%c | Печатает один символ | printf "%c\n" | 65 A (ASCII из 65) |
%% | Печатает % | printf "%%\n" | % |
Спецификатор формата %s
, например, используется для печати строки как она есть, без интерпретации каких-либо специальных символов или убегающих последовательностей. Он просто принимает аргумент входной строки и отображает его на выходе. Это в основном строковый спецификатор для вывода строки:
$ printf "%s\n" "Hello, World!"
Выход:
В данном примере %s
заменяется на "Hello, World!", а \n
добавляет новую строку.
Утилита printf
также интерпретирует следующие спецификаторы:
%q
Развернуть escape-последовательности с обратной косой чертой в соответствующем аргументе
%Q
Как
%q
, но перед заключением в кавычки следует применить любую точность к не заключённому в кавычки аргументу%(fmt)T
Вывести строку даты и времени, полученную в результате использования FMT в качестве строки формата для
strftime
Формат используется повторно по мере необходимости для использования всех аргументов. Если аргументов меньше, чем требует формат, дополнительные спецификации формата ведут себя так, как если бы было предоставлено нулевое значение или пустая строка, в зависимости от ситуации.
Статус выхода
Возвращает успешное выполнение, если только не указан недопустимый параметр или не произошла ошибка записи или назначения
Заключение
В Linux команда printf
помогает структурировать данные, делает вывод более читабельным и профессиональным, независимо от того, используете ли он в скриптах, для форматирования данных или в повседневных задачах командной строки.
Утилита поддерживая широкий спектр спецификаторов формата и последовательностей убегания позволяет осуществлять сложное форматирование данных, что делает команду мощным инструментом для задач сценариев и автоматизации в Linux.