<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://aidalinux.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=Printf</id>
	<title>Printf - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://aidalinux.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=Printf"/>
	<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Printf&amp;action=history"/>
	<updated>2026-05-04T18:19:47Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Printf&amp;diff=151&amp;oldid=prev</id>
		<title>Langator в 15:26, 15 апреля 2011</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Printf&amp;diff=151&amp;oldid=prev"/>
		<updated>2011-04-15T15:26:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия 15:26, 15 апреля 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot; &gt;Строка 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Команда printf выводит АРГУМЕНТ на стандартный вывод (как правило, экран дисплея), используя при этом определенный ФОРМАТ.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Команда printf выводит АРГУМЕНТ на стандартный вывод (как правило, экран дисплея), используя при этом определенный ФОРМАТ.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;  $ &lt;/del&gt;printf 'ФОРМАТ' 'АРГУМЕНТ'&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;/ins&gt;printf 'ФОРМАТ' 'АРГУМЕНТ'&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/source&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Эта команда была создана для замены всем знакомой команды echo (настолько древней, что даже имя ее автора не известно).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Эта команда была создана для замены всем знакомой команды echo (настолько древней, что даже имя ее автора не известно).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l332&quot; &gt;Строка 332:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 332:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Должен предупредить, что собрал в этой статье все, что сумел &amp;quot;нарыть&amp;quot; по поводу всех версий этой команды. Поэтому некоторые варианты могут не срабатывать в ваших версиях.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Должен предупредить, что собрал в этой статье все, что сумел &amp;quot;нарыть&amp;quot; по поводу всех версий этой команды. Поэтому некоторые варианты могут не срабатывать в ваших версиях.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Ссылки ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[http://open-club.ru/main/reading/HuMan_printf open-club.ru]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;----&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[Категория&lt;/ins&gt;:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Man]&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Информация взята с &lt;/del&gt;[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;http&lt;/del&gt;:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;//open-club.ru/main/reading/HuMan_printf open-club.ru&lt;/del&gt;]&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Printf&amp;diff=11&amp;oldid=prev</id>
		<title>Langator: Новая страница: «== Printf как замена команды echo ==  Эта команда была создана для замены всем знакомой команды echo...»</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Printf&amp;diff=11&amp;oldid=prev"/>
		<updated>2011-02-02T04:11:54Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «== Printf как замена команды echo ==  Эта команда была создана для замены всем знакомой команды echo...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Printf как замена команды echo ==&lt;br /&gt;
&lt;br /&gt;
Эта команда была создана для замены всем знакомой команды echo. Возможности команды echo ограничены, кроме того, в разных ветках Unix'а оказались разные ее версии, что приводит к несовместимости. Поэтому Posix рекомендует пользоваться командой printf.&lt;br /&gt;
Команда printf выводит АРГУМЕНТ на стандартный вывод (как правило, экран дисплея), используя при этом определенный ФОРМАТ.&lt;br /&gt;
&lt;br /&gt;
  $ printf 'ФОРМАТ' 'АРГУМЕНТ'&lt;br /&gt;
&lt;br /&gt;
Эта команда была создана для замены всем знакомой команды echo (настолько древней, что даже имя ее автора не известно).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Самое первое, что следует прояснить: по умолчанию команда printf не переводит строку по завершении. Это выглядит так:&lt;br /&gt;
&lt;br /&gt;
  [ya@antony ~]$ printf '%s' 'alex'&lt;br /&gt;
  &lt;br /&gt;
  alex[ya@antony ~]$  &lt;br /&gt;
&lt;br /&gt;
Следующее приглашение командной строки находится на той же самой строке что и вывод предыдущей команды. Это очень неудобно, поэтому в ФОРМАТ приходится добавлять символ новой строки (\n):&lt;br /&gt;
&lt;br /&gt;
  [ya@antony ~]$ printf '%s\n' 'alex'&lt;br /&gt;
  &lt;br /&gt;
  alex&lt;br /&gt;
  &lt;br /&gt;
  [ya@antony ~]$ &lt;br /&gt;
&lt;br /&gt;
Приглашение переехало на новую строку, и все обрело привычный вид. В дальнейшем я не стану приводить приглашение целиком, ограничусь знаком доллара.&lt;br /&gt;
&lt;br /&gt;
Вот как выглядит команда printf в виде, полностью дублирующем команду echo:&lt;br /&gt;
&lt;br /&gt;
   $ printf '%b\n' 'Это заклинание заменит команду echo'&lt;br /&gt;
   &lt;br /&gt;
   Это заклинание заменит команду echo&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что мы взяли аргумент в кавычки, чтобы получить его в виде одной строки. Если бы мы этого не сделали, то имели бы столбик, так как программа воспринимает выражения, разделенные пробелом, как множественные аргументы, и обрабатывает каждый в соответствии с заданным форматом:&lt;br /&gt;
&lt;br /&gt;
  $ printf '%b\n' Это заклинание заменит команду echo&lt;br /&gt;
  &lt;br /&gt;
  Это &lt;br /&gt;
  &lt;br /&gt;
  заклинание &lt;br /&gt;
  &lt;br /&gt;
  заменит &lt;br /&gt;
  &lt;br /&gt;
  команду &lt;br /&gt;
  &lt;br /&gt;
  echo&lt;br /&gt;
&lt;br /&gt;
Если нам нужно использовать команду printf для просмотра переменных окружения, то кавычки не нужны:&lt;br /&gt;
&lt;br /&gt;
  $ printf '%b\n' $PATH&lt;br /&gt;
  &lt;br /&gt;
  /home/ya/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin:/usr/games:/usr/X11R6/bin&lt;br /&gt;
&lt;br /&gt;
Если же мы возьмем аргумент в кавычки, то он будет воспринят просто как выражение и воспроизведен дословно:&lt;br /&gt;
&lt;br /&gt;
  $ printf '%b\n' '$PATH'&lt;br /&gt;
  &lt;br /&gt;
  $PATH&lt;br /&gt;
&lt;br /&gt;
Но довольно о замене команды echo, займемся непосредственно командой printf.&lt;br /&gt;
&lt;br /&gt;
== Описание и использование ==&lt;br /&gt;
&lt;br /&gt;
=== Представление аргумента ===&lt;br /&gt;
&lt;br /&gt;
'''N''' Нормальное десятичное число. Например 177&lt;br /&gt;
&lt;br /&gt;
'''0N''' Восьмеричное число. Например 024.&lt;br /&gt;
&lt;br /&gt;
'''0xN''' и '''0XN''' Шестнадцатеричные числа. Например 0?41.&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;А''' (обычные кавычки перед любой буквой) Интерпретируется как кодовый номер этой буквы в текущей кодировке. С кириллицей не работает.&lt;br /&gt;
&lt;br /&gt;
''''А''' (одинарные кавычки перед любой буквой) Интерпретируется как кодовый номер этой буквы в текущей кодировке. С кириллицей не работает.&lt;br /&gt;
&lt;br /&gt;
=== Форматы команды printf ===&lt;br /&gt;
&lt;br /&gt;
Вообще говоря, синтаксис команды printf взят от функции printf() языка программирования Си (и еще дюжины других). Но далеко не все знакомы с Си, поэтому мы внимательно рассмотрим все тонкости синтаксиса этой команды.&lt;br /&gt;
&lt;br /&gt;
ФОРМАТ пишется в командной строке непосредственно после самой команды и заключается в кавычки - двойные или одинарные. Собственно говоря, кавычки нужны не всегда, но лучше их ставить, во избежание недоразумений. Это полезная привычка. (А ведь большинство привычек - вредные).&lt;br /&gt;
&lt;br /&gt;
'''%b''' Рассматривает аргумент как строку, при этом интерпретирует все управляющие символы, содержащиеся в ней.&lt;br /&gt;
&lt;br /&gt;
'''%s''' Рассматривает аргумент как просто как строку.&lt;br /&gt;
&lt;br /&gt;
'''%c''' Рассматривает аргумент как символ, при этом берется первый символ выражения или строки.&lt;br /&gt;
&lt;br /&gt;
'''%q''' Преобразует строку к виду, пригодному к использованию в качестве ввода в шелл.&lt;br /&gt;
&lt;br /&gt;
Здесь необходимы пояснения. Допустим, мы хотим напечатать на экране фразу:&lt;br /&gt;
&lt;br /&gt;
  Ваш,&lt;br /&gt;
  &lt;br /&gt;
  Алексей Дмитриев&lt;br /&gt;
&lt;br /&gt;
Для этого дадим следующую команду:&lt;br /&gt;
&lt;br /&gt;
  $ printf '%b\n' 'Ваш,\nАлексей Дмитриев'&lt;br /&gt;
  &lt;br /&gt;
  Ваш,&lt;br /&gt;
  &lt;br /&gt;
  Алексей Дмитриев&lt;br /&gt;
&lt;br /&gt;
А теперь вместо формата %b применим формат %q:&lt;br /&gt;
&lt;br /&gt;
  $ printf '%q\n' 'Ваш,\nАлексей Дмитриев'&lt;br /&gt;
  &lt;br /&gt;
  $'\320\222\320\260\321\210,\\n\320\220\320\273\320\265\320\272\321\201\320\265\320\271   \320\224\320\274\320\270\321\202\321\200\320\270\320\265\320\262'&lt;br /&gt;
&lt;br /&gt;
Кажется, произошла какая-то ошибка или сбой. Но это не так; подставим вывод команды в качестве аргумента команды printf '%b\n', но уже безо всяких дополнительных кавычек (все необходимые кавычки содержатся в выводе команды):&lt;br /&gt;
&lt;br /&gt;
  $ printf '%b\n' $'\320\222\320\260\321\210,\\n\320\220\320\273\320\265\320\272\321\201\320\265\320\271   \320\224\320\274\320\270\321\202\321\200\320\270\320\265\320\262'&lt;br /&gt;
  &lt;br /&gt;
  Ваш,&lt;br /&gt;
  &lt;br /&gt;
  Алексей Дмитриев&lt;br /&gt;
&lt;br /&gt;
Больше того, этот же вывод можно использовать в качестве аргумента для других команд, скажем echo -e (опция -e позволяет команде echo интерпретировать специальные символы, в частности символ новой строки (\n):&lt;br /&gt;
&lt;br /&gt;
  $ echo -e $'\320\222\320\260\321\210, \\n\320\220\320\273\320\265\320\272\321\201\320\265\320\271   \320\224\320\274\320\270\321\202\321\200\320\270\320\265\320\262'&lt;br /&gt;
    &lt;br /&gt;
  Ваш,&lt;br /&gt;
  &lt;br /&gt;
  Алексей Дмитриев&lt;br /&gt;
&lt;br /&gt;
Вот какой интересный формат '''%q!''' Однако продолжим.&lt;br /&gt;
&lt;br /&gt;
Дальше идут всевозможные форматы представления чисел.&lt;br /&gt;
&lt;br /&gt;
'''%d''' Представляет аргумент в виде десятичного числа, могущего иметь знак (+ или -).&lt;br /&gt;
&lt;br /&gt;
'''%u''' Представляет аргумент в виде десятичного числа, не имеющего знака.&lt;br /&gt;
&lt;br /&gt;
   $ printf '%d\n' -777&lt;br /&gt;
   &lt;br /&gt;
   -777&lt;br /&gt;
&lt;br /&gt;
'''%i''' То же, что и предыдущее.&lt;br /&gt;
&lt;br /&gt;
'''%o''' Представляет аргумент в виде не имеющего знака восьмеричного числа.&lt;br /&gt;
&lt;br /&gt;
   $ printf '%o\n' 777&lt;br /&gt;
   &lt;br /&gt;
   1411&lt;br /&gt;
&lt;br /&gt;
'''%x''' Представляет аргумент в виде не имеющего знака шестнадцатеричного числа. Буквы пишутся в нижнем регистре.&lt;br /&gt;
&lt;br /&gt;
   $ printf '%x\n' 177&lt;br /&gt;
   &lt;br /&gt;
   b1&lt;br /&gt;
&lt;br /&gt;
'''%X''' Представляет аргумент в виде не имеющего знака шестнадцатеричного числа, при этом буквы пишутся в верхнем регистре.&lt;br /&gt;
&lt;br /&gt;
   $ printf '%X\n' 177&lt;br /&gt;
   &lt;br /&gt;
   B1&lt;br /&gt;
&lt;br /&gt;
'''%f''' Интерпретирует аргумент как число с плавающей запятой.&lt;br /&gt;
&lt;br /&gt;
   $ printf '%f\n' 17,7&lt;br /&gt;
   &lt;br /&gt;
   17,700000&lt;br /&gt;
&lt;br /&gt;
'''%e''' Интерпретирует аргумент с удвоенной точностью (double precision), при этом выводит его в формате &amp;lt;N&amp;gt;+/-e&amp;lt;N&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  $ printf '%e\n' 177&lt;br /&gt;
  &lt;br /&gt;
  1,770000e+02&lt;br /&gt;
&lt;br /&gt;
'''%E''' То же, что и предыдущее, только с заглавной буквой Е.&lt;br /&gt;
&lt;br /&gt;
Вот и все форматы, я привел их для встроенной в bash команды printf.&lt;br /&gt;
&lt;br /&gt;
=== Модификаторы форматов ===&lt;br /&gt;
&lt;br /&gt;
Для большей гибкости представления строк или чисел, поддерживаются несколько модификаторов форматов. Модификаторы вставляются между символом процента и буквой, характеризующей формат, например:&lt;br /&gt;
&lt;br /&gt;
  [ya@antony ~]$ printf '%50s\n' 'this field is 50 characters wide...'&lt;br /&gt;
  &lt;br /&gt;
               this field is 50 characters wide...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(С кириллицей не работает).&lt;br /&gt;
&lt;br /&gt;
Модификаторы:&lt;br /&gt;
Любое число Обозначает минимальную ширину колонки, если текст короче, то строки дополняются пробелами. (См. пример выше).&lt;br /&gt;
&lt;br /&gt;
# Альтернативный формат для чисел, см. ниже.&lt;br /&gt;
&lt;br /&gt;
- Выравнивание текста по левому краю (стандарно - по правому краю)&lt;br /&gt;
&lt;br /&gt;
0 Дополняет числа нулями, а не пробелами. Применяется при заданной ширине колонки (в примере 50). Пример:&lt;br /&gt;
&lt;br /&gt;
  $ printf '%050d\n' '177'&lt;br /&gt;
  &lt;br /&gt;
  00000000000000000000000000000000000000000000000177&lt;br /&gt;
&lt;br /&gt;
space Дополняет положительные числа пробелами, а отрицательные знаками &amp;quot;минус&amp;quot; (-).&lt;br /&gt;
&lt;br /&gt;
+ Пишет все числа со знаками плюс или минус.&lt;br /&gt;
&lt;br /&gt;
=== Альтернативный формат для чисел ===&lt;br /&gt;
&lt;br /&gt;
'''%#o''' Восьмеричные числа пишутся с нулем впереди, если они сами не нулевые:&lt;br /&gt;
&lt;br /&gt;
  $ printf '%#0o\n' '177'&lt;br /&gt;
  &lt;br /&gt;
  0261&lt;br /&gt;
&lt;br /&gt;
'''%#x''', '''%#X''' Шестнадцатеричные числа пишутся с '''0х''' или '''0Х''' впереди, если они сами не нулевые:&lt;br /&gt;
&lt;br /&gt;
  $ printf '%#x\n' '177'&lt;br /&gt;
  &lt;br /&gt;
  0xb1&lt;br /&gt;
&lt;br /&gt;
'''%#g''', '''%#G''' Числа с плавающей запятой пишутся с последующими нулями, в количестве, определяемом данным разрешением. Обычно последующие нули не пишутся:&lt;br /&gt;
&lt;br /&gt;
  $ printf '%#g\n' '17,7'&lt;br /&gt;
  &lt;br /&gt;
  17,7000&lt;br /&gt;
&lt;br /&gt;
'''%#''' со всеми числовыми форматами, кроме ''d, o, x, X'' Всегда ставит десятичную запятую, даже если знаков после запятой нет:&lt;br /&gt;
&lt;br /&gt;
  $ printf '%#ge\n' '177'&lt;br /&gt;
  &lt;br /&gt;
  177,000&lt;br /&gt;
&lt;br /&gt;
=== Точность разрешения ===&lt;br /&gt;
&lt;br /&gt;
Точность разрешения чисел с плавающей запятой и чисел с удвоенной точностью (double precision) можно регулировать следующим образом:&lt;br /&gt;
&lt;br /&gt;
  $ printf &amp;quot;%.20f\n&amp;quot; 4,3&lt;br /&gt;
  &lt;br /&gt;
  4,30000000000000000017&lt;br /&gt;
&lt;br /&gt;
Внимание: не прозевайте точку в записи формата!&lt;br /&gt;
&lt;br /&gt;
Можно вместо числа знаков поставить астериск, тогда количество знаков ставится перед самим аргументом:&lt;br /&gt;
&lt;br /&gt;
  $ printf &amp;quot;%.*f\n&amp;quot; 10 4,3&lt;br /&gt;
  &lt;br /&gt;
  4,3000000000&lt;br /&gt;
&lt;br /&gt;
Для строк точность разрешения определяет максимальное число выводимых символов (максимальную ширину колонки текста).&lt;br /&gt;
&lt;br /&gt;
Для целых чисел - задает число выводимых знаков (добавляет нули).&lt;br /&gt;
&lt;br /&gt;
=== Управляющие символы языка Си, работающие с командой printf ===&lt;br /&gt;
&lt;br /&gt;
'''\&amp;quot;''' Двойные кавычки&lt;br /&gt;
&lt;br /&gt;
'''\NNN''' Символ с восьмеричным значением NNN (от 1 до 3 цифр)&lt;br /&gt;
&lt;br /&gt;
'''\\''' Обратный слэш (\)&lt;br /&gt;
&lt;br /&gt;
'''\a''' Звуковой сигнал&lt;br /&gt;
&lt;br /&gt;
'''\b''' Забой&lt;br /&gt;
&lt;br /&gt;
'''\c''' Не производить дальнейшую обработку данных&lt;br /&gt;
&lt;br /&gt;
'''\f''' Перевод страницы&lt;br /&gt;
&lt;br /&gt;
'''\n''' Новая строка&lt;br /&gt;
&lt;br /&gt;
'''\r''' Возврат каретки&lt;br /&gt;
&lt;br /&gt;
'''\v''' Вертикальная табуляция&lt;br /&gt;
&lt;br /&gt;
'''\xHH''' Символ с шестнадцатеричным кодом HH (1 или 2 цифры)&lt;br /&gt;
&lt;br /&gt;
'''\uHHHH''' Символ Unicode (ISO/IEC 10646) с шестнадцатеричным кодом HHHH (4 цифры)&lt;br /&gt;
&lt;br /&gt;
'''\UHHHHHHHH''' Символ Unicode с шестнадцатеричным кодом HHHHHHHH (8 цифр)&lt;br /&gt;
&lt;br /&gt;
'''%%''' Символ ''%''&lt;br /&gt;
&lt;br /&gt;
=== Еще несколько примеров ===&lt;br /&gt;
&lt;br /&gt;
1. Вывести шестнадцатеричное число в десятичной форме:&lt;br /&gt;
&lt;br /&gt;
  $ printf '%d\n' '-0x41'&lt;br /&gt;
  &lt;br /&gt;
  -65&lt;br /&gt;
&lt;br /&gt;
2. Вывести десятичное число в восьмеричной форме:&lt;br /&gt;
&lt;br /&gt;
  $ printf '%o\n' 65&lt;br /&gt;
  &lt;br /&gt;
  101&lt;br /&gt;
&lt;br /&gt;
3. Узнать кодовый номер буквы А (англ):&lt;br /&gt;
&lt;br /&gt;
  $ printf '%d\n' \'A&lt;br /&gt;
  &lt;br /&gt;
  65&lt;br /&gt;
&lt;br /&gt;
4. Пример, служащий домашним заданием:&lt;br /&gt;
&lt;br /&gt;
  $ printf '%b\n' &amp;quot;$0&amp;quot; &amp;quot;$@&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  /bin/bash&lt;br /&gt;
&lt;br /&gt;
Кто понял, в чем тут дело, сообщите мне, пожалуйста. Я лично не понял.&lt;br /&gt;
&lt;br /&gt;
=== Опции команды printf ===&lt;br /&gt;
&lt;br /&gt;
Опция -v ПЕРЕМЕННАЯ_ОКРУЖЕНИЯ&lt;br /&gt;
&lt;br /&gt;
Записывает аргумент в указанную переменную окружения. При этом затирает все, что там было прописано. Осторожно!&lt;br /&gt;
&lt;br /&gt;
  $ printf -v PATH '%b\n' '/usr/local/bin'&lt;br /&gt;
  &lt;br /&gt;
  $ printf '%b\n' $PATH&lt;br /&gt;
  &lt;br /&gt;
  /usr/local/bin&lt;br /&gt;
  &lt;br /&gt;
  $ su&lt;br /&gt;
  &lt;br /&gt;
  bash: su: команда не найдена&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Хорошо, что в начале статьи я привел пример, в котором была записана моя $PATH, поэтому смог восстановить.&lt;br /&gt;
&lt;br /&gt;
Опции --help и --version общеизвестны и рассмотрены не будут.&lt;br /&gt;
&lt;br /&gt;
''Примечание:'' В мане GNU-версии команды вы не найдете и половины этой информации, а будете отосланы к синтаксису языка Си.&lt;br /&gt;
&lt;br /&gt;
=== Резюме команды printf ===&lt;br /&gt;
&lt;br /&gt;
Исследуя подобные команды, получаешь настоящее удовольствие, маны практически отсутствуют, найденные статьи относятся к другим версиям команды. Почти все приходится добывать методом эксперимента. Сколько еще удивительных особенностей таит команда printf, узнают только те, кто станет пользоваться ей в повседневной жизни.&lt;br /&gt;
&lt;br /&gt;
Должен предупредить, что собрал в этой статье все, что сумел &amp;quot;нарыть&amp;quot; по поводу всех версий этой команды. Поэтому некоторые варианты могут не срабатывать в ваших версиях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Информация взята с [http://open-club.ru/main/reading/HuMan_printf open-club.ru]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
</feed>