printf – 書式を指定して出力するコマンド

整形・フォーマット
スポンサーリンク

printf コマンドは、C言語の printf 関数と同様のフォーマット指定子を使って文字列を整形して出力 するためのコマンドです。
echo よりも制御が正確で、移植性が高く、スクリプトでの利用が推奨されます。

構文(Syntax)

printf FORMAT [ARGUMENT...]

主なフォーマット指定子

指定子説明使用例出力例
%s文字列printf "%s\n" "Hello"Hello
%d整数(10進数)printf "%d\n" 4242
%f浮動小数点数printf "%.2f\n" 3.141593.14
%x整数(16進数)printf "%x\n" 255ff
%o整数(8進数)printf "%o\n" 810
%c文字コードを文字として出力printf "%c\n" 65A
%%% を出力printf "100%% complete\n"100% complete

主なオプション

printf は基本的にオプションがなく、フォーマット文字列で挙動を制御します。

フォーマット修飾子

  • %-N : 左詰め
  • %0N : ゼロ埋め
  • %N.M : N桁幅、M桁小数点

例:

printf "%05d\n" 42

出力:

00042

実行例

文字列を出力

printf "Hello, %s!\n" "Alice"

出力:

Hello, Alice!

整数と浮動小数点数を整形

printf "Value: %d, Pi: %.3f\n" 42 3.14159

出力:

Value: 42, Pi: 3.142

ゼロ埋めで桁を揃える

printf "%04d\n" 7

出力:

0007

左詰めで出力

printf "%-10s %s\n" "Name" "Age"
printf "%-10s %s\n" "Alice" "25"
printf "%-10s %s\n" "Bob" "30"

出力:

Name       Age
Alice      25
Bob        30

16進数として出力

printf "%x\n" 255

出力:

ff

改行を明示しない場合

printf "Hello"
printf "World"

出力:

HelloWorld

エラー例(引数不足)

printf "Name: %s, Age: %d\n" "Alice"

出力例:

Name: Alice, Age: 0

(足りない引数はデフォルトで 0 や空文字に置き換えられる)

関連コマンド

  • echo : 簡易的に文字列を出力
  • awk : テキスト処理で整形出力に利用可能
  • sed : 文字列の変換や加工に利用可能

備考

  • echo よりも環境差が少なく、POSIX に準拠したスクリプトでは printf の利用が推奨されます。
  • 改行は自動では入らないため、必要に応じて \n を明示的に指定してください。
  • bash など多くのシェルでは組み込みコマンドとして提供されています。

参考

スポンサーリンク
Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント