printf (Unix)

プリント
開発者さまざまなオープンソースおよび商用開発者
オペレーティング·システムUnixおよびUnixライク
プラットフォームクロスプラットフォーム
タイプ指示
ライセンスcoreutils : GPLv3+ [ 1 ]

printfは、同名のC言語関数のようにテキストをフォーマットして出力するシェルコマンドです。様々なUnixおよびUnix系システムで利用可能です。シェルによってはこのコマンドを組み込みコマンドとして実装しているものもあれば、ユーティリティプログラムとして提供しているものもあります[ 2 ]。

このコマンドはライブラリ関数と同様の構文セマンティクスを持ちます。このコマンドは、書式文字列と値のリストで指定されたとおりに、標準出力[ 3 ]にテキストを出力します。書式文字列の文字は、書式指定子が見つかった場合を除き、そのまま出力にコピーされます。書式指定子は、指定された値を出力するために使用されます。

このコマンドはライブラリ関数とは異なる点がいくつかあります。ライブラリ関数の書式指定子に加えて、コマンド%bはバックスラッシュエスケープシーケンス(例えば\n改行)を展開し、シェル入力として使用できる項目を出力します。[ 3 ]一致しない指定子(値が少なすぎる)に使用される値は、指定子の場合は空文字列、数値指定子の場合は0です。指定子よりも値のほうが多い場合、コマンドは書式文字列の先頭から処理を再開します。 %q%s

このコマンドは、 1992年第4版以降、 X/Open移植性ガイドの一部となっている。これはPOSIX.1の最初のバージョンとSingle Unix仕様に継承された。[ 4 ] 4.3BSD-Renoで初めて登場した。[ 5 ]

GNU Core Utilitiesにバンドルされている実装はDavid MacKenzieによって書かれました。POSIXシェル形式の文字列をエスケープするための拡張機能%qがあります。 [ 3 ]

これは数字のリストを出力します:

$ for N in 4 8 10 ; printf " >> %03d << \n" $ N ;完了>> 004 << >> 008 << >> 010 << 

これにより、次のようなディレクトリの内容の出力が生成されますls

$ printf "%s\n" * 

参考文献

  1. ^ "printf(1): データのフォーマット/印刷 - Linux manページ" . linux.die.net .
  2. ^ "GNU Coreutils" . www.gnu.org
  3. ^ a b cprintf(1)  –  Linuxユーザーマニュアル– Manned.org のユーザーコマンド
  4. ^printf  – シェルおよびユーティリティリファレンス、 The Single UNIX 仕様、バージョン5、 The Open Group
  5. ^printf(1)  –  FreeBSD一般コマンドマニュアル