Shell printf形式文字列


書式文字
書式
説明
書式
説明
%a
パラメータをdoubleで説明し、C 99 16進浮動小数点定数で印刷します.
%i
%dと同じ
%A
%aと同じですが、印刷されたフォーマット後の文字列の大文字
%n
これまでに印刷した文字数を、対応するパラメータで指定した変数に割り当てます.配列インデックスを指定できません.指定した変数が配列の場合、配列の0番目の要素に値が割り当てられます.
%b
パラメータでサポートされているスラッシュエスケープ文字を回転させてから印刷します.
%o
パラメータを符号なし8進数で印刷
%c
パラメータをcharで解釈し、パラメータの最初の文字のみを印刷します.
%q
パラメータをshell入力の再利用可能なフォーマットで印刷
%d
パラメータを符号付き10進数整数で印刷
%s
パラメータを文字通り文字列として解釈する
%e
パラメータをdoubleで解釈し、科学的なカウント法で印刷します.
%(FORMAT)T
strftime(3)を使用して文字列FORMATをフォーマットした日付-時間文字列を出力します.パラメータは紀元からの時間秒数であり、2つの特殊な値があります.-1は現在の時間、-2はshell起動時間です.パラメータが指定されていない場合は、デフォルトで現在の時間が使用されます.strftime(3)日時フォーマット文字列は、%N、%:z、%::z、%::zを除くすべてのdateコマンド日時出力フォーマットをサポートします.
%E
%eと同じですが、印刷されたフォーマット後の文字列の大文字
%u
パラメータを符号なし小数点以下で印刷
%f
パラメータを浮動小数点数で印刷
%x
パラメータを符号なし16進数で印刷
%g
パラメータをdoubleで説明し、%eまたは%fで印刷
%X
%xと同じですが、印刷されたフォーマット後の文字列の大文字
%G
%Gと同じですが、%E形式で印刷
%%
変換なしにパーセントを出力
フォーマット修飾子
修飾子
説明
フィールドの最小幅を指定します.印刷されたテキストが短い場合はスペースで埋め、印刷されたテキストが長い場合は通常印刷されます.
.
ドメイン幅とともに使用すると、印刷されたテキストが長い場合にテキストが切り捨てられます.もし"."その後、幅は指定されず、デフォルトは0で、テキストは印刷されません.もし"."前にも幅を指定すると、テキストを切り捨てた後に指定した幅に補完されます.例えばprintf"%2.1 s"abc.
*
[幅](Width)文字列または数値の前にパラメータで指定すると、印刷テキストの幅を動的に指定できます.例えば、printf"%*s"20"test".
#
数値フォーマット選択子、後の数値フォーマット選択を参照してください.-
左揃え(右揃え)例えば、printf"%*s"20"test".
0
スペースではなくゼロで数値を入力します.例えば、printf"%010 d"123.
(スペース)
正の数を殺す場合は、前にスペースを付け、負の数の場合は「-」を付けます.例えば、printf"%d"123.
+
数字の記号を印刷し、正数の前に「+」、負数の前に「-」を付けます.例えば、printf"%+d"123.
'
10進数を現在のLC_でNUMERICは、出力の整数部分、例えばprintf"%'d"12345567890に千ビットパケット区切り記号を適用する.
数値フォーマットの選択
書式設定
説明
%#o
8進数は、printf"%o%#o"123など、それ自体がゼロでない限り、常に0で始まる.
%#x、%#X
16進数は、printf"%x%#x"123などのゼロでない限り、常に"0 x"/"0 x"で始まる.
%#g、%#G
印刷された浮動小数点数の後には、printf"%g%#g"123,123のように精度に必要なビット数を満たすまで0が続く.
小数フォーマットの精度は「.」printf"%.4f"1.23のように精度ビット数に従って定義される.「.*」を使用してパラメータから精度を取得し、小数を印刷することもできます.例えば、printf"%.*f"10 1.23.