UNIX/Linuxの部屋 コマンド:printf


※空白区切りで AND 検索 (例:「ファイル 削除」)

コマンド printf C の printf(3) と同じような出力を行うコマンド (8進数/10進数/16進数変換)

C の printf(3) と同じような出力をコマンドラインから行うことができる。

% printf "abc\n"; printf "def\n"
abc
def
⇒ echo と異なり、改行させたければ明示的に \n を付ける必要がある。
% printf "abc"; printf "def"
abcdef
⇒ \n を付けないとこうなる
% printf "HOME=[%s]\n" $HOME
⇒ 文字列を表示するには %s を使う
% printf "HOME=[%s] USER=[%s]\n" $HOME $USER
⇒ 複数のフォーマットも指定できる
% printf "[%d]\n" 30
[30]
⇒ 数値は %d を使う (この例では %s でも同じ)
% printf "[%5d]\n" 30
[ 30]
⇒ 5桁で右詰め
% printf "[%-5d]\n" 30
[30 ]
⇒ 5桁で左詰め
% printf "[%05d]\n" 30
[00030]
⇒ 5桁でゼロパディング

8進数/10進数/16進数変換
printf を活用し、8進数・10進数・16進数の変換を行うことができる。
printf "%d\n" 0x10
⇒ 16進数を 10進数に
printf "%d\n" 010
⇒ 8進数を 10進数に
printf "%x\n" 10
⇒ 10進数を 16進数に
printf "%x\n" 010
⇒ 8進数を 16進数に
printf "%o\n" 0x10
⇒ 16進数を 8進数に
% printf "%o\n" 10
⇒ 10進数を 8進数に
>> Linuxオンラインマニュアル(man) Linux printf(3)
>> Linuxオンラインマニュアル(man) Linux printf(1)
>> FreeBSDオンラインマニュアル(man) FreeBSD printf(1)

読み方 printf (C関数) [ぷりんとえふ] [ぷりんとふ]

標準出力に文字列を出力するライブラリ関数。

printf ファミリ:
sprintf [えす・ぷりんとえふ]
fprintf [えふ・ぷりんとえふ]
snprintf [えすえぬ・ぷりんとえふ]
vprintf [ぶい・ぷりんとえふ]
vfprintf [ぶいえふ・ぷりんとえふ]
vsprintf [ぶいえす・ぷりんとえふ]
vsnprintf [ぶいえすえぬ・ぷりんとえふ]

関数 printf 標準出力に指定のフォーマットで文字列を出力するライブラリ関数

int i=10;
long int li=123456787890L;
long long int lli=123456787890L;
double d=123.456;
char str[]="Hello.";
printf("%d", i); /* int を出力するには %d */
printf("%ld", li); /* long int を出力するには %ld */
printf("%lld",lli); /* long long int を出力するには %lld */
printf("%f", f); /* double を出力するには %f */
printf("%s", str); /* 文字列を出力するには %s */
printf("%%"); /* % 自体を出力するに際は %% とする */
printf("%c", 'a'); /* 文字を出力するには %c */

printf("%10d", i); /* 10 桁で表示。10桁に満たない場合は左側を空白で埋める */
printf("%10s", str); /* こちらは文字列を 10桁で表示 */
printf("%-10s" ,str); /* 右詰めするにはマイナスを付ける */
printf("%05d", i); /* 5 桁で表示。10桁に満たない場合はゼロパディングして表示 */
printf("%.*s", 2, str); /* 桁数を動的に変更する場合は .* とする */

printf ファミリの関数には、
  • printf … 文字列を作成し、指定の変数にコピー
  • sprintf … 文字列を作成し、指定の変数にコピー
  • snprintf … 文字列を作成し、指定の変数にコピー。ただし変数の長さを指定する。
  • fprintf … 文字列を作成し、指定のファイル (ストリーム) に出力
などがある。


頑張って書いたおすすめコンテンツ!
クラウドサービス徹底比較・徹底解説