EN JA
FMT(1)
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

を入力すると、パラグラフを整形してくれます。

環境変数

environ(7) に記述されているように、 LANG, LC_ALL, LC_CTYPE 環境変数は fmt の実行に影響を及ぼします。

関連項目

fold(1), mail(1), nroff(1)

歴史

fmt コマンドは、 3BSD で登場しました。

このバージョンは、完全に書き直したもので、 FreeBSD 4.4 に登場しました。

作者

Kurt Shoens Liz Allen ( goal の長さの概念を導入) Gareth McCaughan

バグ

このプログラムは、簡単で高速であるようにデザインされました。もっと複雑な整形には、標準的なテキストプロセッサを使うのが適しています。

インデントされた段落の最初の行がとても長い場合 (goal の長さの 2 倍よりも長い場合)、出力のインデントが誤りとなる可能性があります。

どの行がメールヘッダでありどれがそうでないかの判断を、 fmt ユーティリティが絶対に間違えないということはありません。

August 2, 2004 FreeBSD