FMT(1) | FreeBSD General Commands Manual | FMT(1) |
名称
fmt — 簡単なテキストフォーマッタ書式
fmt | [ -cmnps][ -d chars][ -l num][ -t num][ goal [ maximum] | -width | -w width][ file ...] |
解説
fmt ユーティリティは簡単なテキストフォーマットプログラムです。引数として name が指定されていればその名前のファイルを、指定されていなければ標準入力を読み込み、入力した行を次々に連結していき、 maximum を超えない範囲で、 goal で指定した長さに近い文字数に整形します。デフォルトでは、 goal の長さは 65、 maximum の長さは goal に 10 を加えたものです。または、前にハイフンを付けるか -w を使用することにより、単一の width パラメータを指定可能です。例えば、“fmt -w 72
”, “
fmt -72
”, “
fmt 72 72
”は同じ出力となります。入力行の先頭に空白がある場合は、整形した出力の先頭にも空白が置かれ段づけされます。また、空白行や、文字と文字の間の空白の数も、出力に受け継がれます。行が結合されたり分割されるのは、空白においてのみです。つまり、複数の単語が結合されたりハイフネーションされることはありません。
オプションは次の通りです:
- -c
- テキストを中央寄せさせます。この場合、他のほとんどのオプションは無視されます。行の分割や結合は行われません。
- -m
- 入力に含まれるメールヘッダ行を目立つように整形しようとします。
- -n
-
‘
.
’ (ドット) 文字で開始する行を整形します。通常では、 fmt は、 nroff(1) との互換性のために、このような行を詰めます。 - -p
- インデントされた段落を許します。 -p フラグ無しでは、行頭の空白数が変わると、新規段落が開始します。
- -s
- 行中の空白を潰し、複数の空白文字が単一の空白となるようにします (文末では、二つの空白となります)。
- -d chars
-
chars を文末文字として認識します (他の文字はそうでないと認識します)。デフォルトでは、文末文字は終止符 (‘
.
’) 疑問符 (‘?
’) 感嘆符 (‘!
’) です。文字によっては、シェルから守るために、エスケープが必要であることを覚えておいてください。 - -l number
- 各出力行の先頭の複数の空白をタブで置き換えます。各 number 個の空白が、単一のタブで置き換えられます。デフォルトは 8 です。 number が 0 である場合、空白は維持されます。
- -t number
- 入力ファイルのタブが、 number 個の空白をタブストップに仮定していると仮定します。デフォルトは 8 です。
fmt ユーティリティは、メールメッセージを送信する前に整形するために役立ちますが、他の簡単なタスクのためにも使うことができます。たとえば、 ex(1) のビジュアルモード (すなわち vi(1)) のなかで、コマンド
!}fmt
を入力すると、パラグラフを整形してくれます。
歴史
fmt コマンドは、 3BSD で登場しました。このバージョンは、完全に書き直したもので、 FreeBSD 4.4 に登場しました。
作者
( goal の長さの概念を導入)バグ
このプログラムは、簡単で高速であるようにデザインされました。もっと複雑な整形には、標準的なテキストプロセッサを使うのが適しています。インデントされた段落の最初の行がとても長い場合 (goal の長さの 2 倍よりも長い場合)、出力のインデントが誤りとなる可能性があります。
どの行がメールヘッダでありどれがそうでないかの判断を、 fmt ユーティリティが絶対に間違えないということはありません。
August 2, 2004 | FreeBSD |