4. ファイルの内容の書式化
以下のコマンドは,ファイルの内容を再書式化します.
4.1 fmt
: 段落のテキストを再書式化する.
fmt
は,与えられた(最大)文字数(デフォルトは75)の出力行を生成
するために行を補充し繋げます.概要です.
| fmt [option]... [file]...
|
fmt
は,指定されたfile引数(または,与えられない場合は標
準入力)からファイルを読み込み,標準出力に書き出します.
デフォルトで,空白行,単語間のスペース,そして字下げは出力で維持されま
す.連続した入力行で字下げが異なるものは連結されません.入力のタブは展
開され,出力に書き込まれます.
fmt
は,文の終りで改行しようとし,文の最初の単語の後や文の最
後の単語の前での改行を避けようとします.文の切れ目(sentence
break)は段落の終り,または,`.?!'で終るすべて単語に,二つのスペー
スまたは行末が続くものと定義されていて,カッコや引用符の内部は無視され
ます.TeXのように,fmt
は行の分割を選択する前に"段落"全
体を読み込みます.アルゴリズムは"Breaking Paragraphs Into Lines(段落
を行に区切る)"の変種です(Donald E. Knuth and Michael F. Plass,
Software--Practice and Experience, 11 (1981), 1119--1184).
プログラムは以下のオプションを受け入れます.2. 共通のオプションも参照
してください.
- `-c'
- `--crown-margin'
-
Crown marginモード: 段落の最初の二行の字下げを保存し,それに続く
それぞれの行の左の余白を,二行目の余白に揃えます.
- `-t'
- `--tagged-paragraph'
-
Tagged paragraphモード: crown marginモードに似ていますが,段落の
最初の行の字下が二行目の字下げと同じ場合,最初の行は一行の段落として扱
われます.
- `-s'
- `--split-only'
-
行の分割のみです.短い行を長い形式に連結しません.これはコードのサンプ
ル行と,その他の"書式化された"テキストが醜く連結されることを妨げます.
- `-u'
- `--uniform-spacing'
-
スペースの付け方を統一します.単語の間のスペースを一つのスペースに,そ
して文の間のスペースを二つのスペースに減らします.
- `-width'
- `-w width'
- `--width=width'
-
出力ファイルをwidth文字(デフォルトは75)まで補充します.
fmt
は最初に,これより7%短い行にし,行の長さのバランスのため
の空間を与えようとします.
- `-p prefix'
- `--prefix=prefix'
- prefix(空白で始めることも可能です)で始まる行のみ,書式化を適用し
ます.prefixと前置されたあらゆる空白は,書式化のため取り除かれ,それぞ
れの出力行に再び取り付けられます.一つの使用方法としては,ある種のプロ
グラムのコメントの書式化があげられ,そこではコードは変化しません.
4.2 pr
: 印刷のためのファイルのページ化とコラム化
pr
は,それぞれのfile(`-'は標準入力を意味します)や,
与えられない場合は標準入力をページ化し,オプションで複数列の書式での出
力を標準出力に書き出します.オプションで,全てのfileを結合し一列
ごとに並列に全てを出力します.概要です.
デフォルトで,五行のヘッダがそれぞれのページに出力されます.二行の空白
行.日付,ファイル名,そしてページ番号がある行.さらに二行は空白行です.
また,五行の空白行を持つフッタも出力します.`-F'オプションで,
三行のヘッダを出力します.最初の二行の空白行は削除されます.フッタは使
用されません.どちらの場合でもデフォルトのpage_lengthは66行です.
テキスト行のデフォルト数は56(`-F'が無い場合)から63(`-F'
がある場合)まで変化します.ヘッダのテキスト行は,`date
string page'の形式で,行がpage_widthいっぱいになるよ
うにstringの周りにスペースが挿入されます.ここで,dateは日
付(詳細は,`-D'や`--date-format'オプションを参照してくだ
さい),stringはセンタリングされたヘッダ文字列,そしてpage
はページ番号を示します.LC_MESSAGES
ロケールカテゴリはpage
の綴りに影響します.デフォルトのCロケールでは`Page number'
になり,numberは十進数のページ番号です.
入力のフォームフィードは,出力で改ページとなります.複数のフォームフィー
ドは空のページを生成します.
列は同じ幅で,オプションの文字列(デフォルトは`space')で分けられて
います.複数列の出力では,`-J'オプションを使用していない場合,
行は常にpage_width(デフォルトで72)で切り詰められます.単一列での
出力は,デフォルトでは切り詰められません.その場合,行を切り詰めるため
`-W'オプションを使用してください.
以下の変更は,version 1.22iでなされ,それ以降のpr
のバージョ
ンに適用されています.
- Brian
-
小文字のletter options(`-s',`-w')には,より良い
POSIX準拠のもので再定義されているものもあります.それ以外の
場合での出力は,他のUnixに適合されたものもあります.これらの変更は,プ
ログラムの以前のバージョンと互換性がありません.
-
new capital letterオプション(`-J',`-S',
`-W')には,小文字のオプションでの予期せぬインターフェースを取り
消すために導入されたものもあります.`-N'オプションと二番目の引
数`+FIRST_PAGE'のlast_pageで,より柔軟性が高くなります.入
力ファイルのフォームフィード設定を詳細に扱うため,`-T'オプショ
ンが必要になります.
-
大文字のオプションは,小文字のものに優先します.
-
オプション引数には(`-s',`-S',`-e',`-i',
`-n'と比較して),(POSIX仕様で既に述べられた)前置され
ているオプション文字と分離されている引数を指定することが不可能なものも
あります.
プログラムは以下のオプションを受け入れます.2. 共通のオプションも参照
してください.
- `+first_page[:last_page]'
- `--pages=first_page[:last_page]'
-
ページfirst_pageから出力を開始し,last_pageで停止します.
`:last_page'が無い場合は,ファイルの終りを暗黙に指定します.
飛ばされたページ数を計算している間,入力ファイルのそれぞれのフォーム
フィードは,結果として新しいページになります.`+first_page'
がある場合と無い場合のページの数え方は同じです.デフォルトで,入力ファ
イルの最初のページでカウントを開始します(最初のページは出力されません).
行の番号付けは,`-N'オプションで変更してもかまいません.
- `-column'
- `--columns=column'
-
それぞれ単一fileを用いて,`-a'が使用されない場合は
column列(デフォルトで1)の出力を生成し列を下へ向かって出力します.
列の幅は,columnが増加するに従い,自動的に減少します.
page_widthを増加させるため,`-W/-w'を使用していない場合も
同様です.このオプションは,いくつかの行を切り詰める可能性があります.
それぞれのページの列の行数は平均化されます.オプション`-e'と
`-i'は,複数のテキスト列の出力のためにあります.`-J'をと
もに用いると,列の整列と行の切り詰めは停止します.十分な長さの行は,フ
リーフィールド書式に組み込まれ,`-S'オプションはフィールドを分
ける可能性があります.`-column'は`-m'オプションと
ともに使用してはいけません.
- `-a'
- `--across'
-
それぞれ単一fileを用い,列を下ではなく横に出力します.
`-column'オプションは,一列以上のcolumnで与える必要
があります.列に適さないほど余りに長い場合,それは切り詰められます.
- `-c'
- `--show-control-chars'
-
ハット表記で(例えば,`^G')を使用して制御文字を出力します.八進数
のバックスラッシュ表記で,その他の印刷不可能な文字を表示します.デフォ
ルトで,印刷不可能な文字は変更されません.
- `-d'
- `--double-space'
-
ダブルスペースを出力です.
- `-D format'
- `--date-format=format'
-
formatを使用してヘッダの日付を書式化し,それはコマンド`date
+format'と同じ慣習を使用します.See section 21.1
date
: システムの日付と時間を出力または設定.
`%'で始まる指示語以外,format内の文字は変更されずに出力され
ます.ヘッダの日付の場所に,例えば`--date-format="Monday
morning"'のような,任意の文字列を指定するために,このオプションを使用
することが可能です.
POSIXLY_CORRECT
環境変数が設定されていない場合,日付の書式はデフォ
ルトで`%Y-%m-%d %H:%M'です(例えば,`2001-12-04 23:59').それ
以外の場合,書式はLC_TIME
ロケールカテゴリに依存し,デフォルトは
`%b %e %H:%M %Y'(例えば,`Dec 4 23:59 2001')になります.
- `-e[in-tabchar[in-tabwidth]]'
- `--expand-tabs[=in-tabchar[in-tabwidth]]'
-
入力のtabをスペースに展開します.オプションの引数
in-tabcharは,入力のタブ文字(デフォルトはTAB文字)です.二番目の
オプション引数in-tabwidthは,入力タブ文字の幅(デフォルトは8)です.
- `-f'
- `-F'
- `--form-feed'
-
出力ページを分けるため,改行の代わりにフォームフィードを使用します.デ
フォルトページの長さの66行は変更されません.しかし,ページごとのテキス
トの行数はデフォルトの56行から63行に変更されます.
- `-h HEADER'
- `--header=HEADER'
-
ヘッダのファイル名を中央揃えされた文字列headerで置換します.シェ
ルを使用しているとき,headerを引用符で囲むべきで,`-h'と
はスペースで分離すべきです.
- `-i[out-tabchar[out-tabwidth]]'
- `--output-tabs[=out-tabchar[out-tabwidth]]'
-
出力上でスペースをtabに置換します.オプション引数
out-tabcharは出力されるタブ文字です(デフォルトはTAB文字です).二
番目のオプション引数out-tabwidthは出力されるタブ文字の幅(デフォ
ルトで8)です.
- `-J'
- `--join-lines'
-
十分な長さの行に統合します.列オプション`-column',
`-a -column',または`-m'とともに使用します.
`-W/-w'の行の切り詰めを停止します.列の整列は使用されません.
`-S[string]'とともに使用してもかまいません.`-J'は
(`-W'と`-S'とともに),三列オプションの古い
(POSIX 準拠の)オプション`-w'と`-s'を解決するた
めに導入されました.
- `-l page_length'
- `--length=page_length'
-
ページの長さを,ヘッダ[とフッタ]の行を含めて,page_length行(デフォ
ルトで66)に設定します.page_lengthが10以下(または`-F'が3
以下)の場合,ヘッダとフッタは取り除かれ,入力ファイルの全てのフォーム
フィード設定は,`-T'オプションが指定されたかのように無視されま
す.
- `-m'
- `--merge'
-
全てのfileを並列に,それぞれの列に一つに統合して出力します.列に
適さないほど行が長すぎる場合,それは`-J'オプションが使用されて
いない限り切り詰められます.`--sep-string[=string]'を使用
してもかまいません.fileの(フォームフィード設定の)空のページは空
の列を生成しますが,stringで印は付いたままです.結果として,連続
した行の番号付けと,統合されたファイル全体を通じて印が付いた列になりま
す.統合されても完全に空のページになるものは,区切りも行番号もありませ
ん.デフォルトヘッダは`date page'になり,真中にスペー
スが挿入されます.これで中間の空白部分を満たすため,`-h'や
`--header'オプションとともに使用してもかまいません.
- `-n[number-separator[digits]]'
- `--number-lines[=number-separator[digits]]'
-
digits桁の行の番号付けを提供します(デフォルトのdigitsは5で
す).複数列の出力では,番号はそれぞれのテキスト列の最初のdigits
列の位置や,`-m'出力のそれぞれの行だけに生成されます.単一列の
出力では,番号はそれぞれの行に`-m'が行うように生成します.デフォ
ルトの行カウントの開始は,入力ファイルの最初の行で始まります
(`--page'オプションと`-N'オプションとは異なり,最初に印
刷される行ではありません).オプション引数number-separatorは,以
下に続くテキストと分離するために行数に後置される文字です.デフォルトの
分離文字はTAB文字です.厳密な意味で,TABは常に単一の列の出力だけに出力
されます.TAB幅はTAB位置で変化し,例えば,左のmargin
が`-o'オプションで指定された場合は変化します.複数列出力のプロ
パティは,`equal width of output columns' (POSIX指定)
で与えられます.TAB幅は,最初の列の値で固定され,左の
marginの値の違いでは変更されません.それは,固定数のスペースが常
にnumber-separator tabの位置に出力されることを意味します.タブ機
能は出力位置に依存します.
- `-N line_number'
- `--first-line-number=line_number'
-
最初のページに出力される最初の行(ほとんどの場合,入力ファイルの最初で
はありません)を,数字のline_numberで行のカウントを開始します.
- `-o margin'
- `--indent=margin'
-
それぞれの行をmarginスペースのマージン幅(デフォルトはゼロ)で字下
げします.ページ全体の幅はマージンに`-W/-w'オプションの
page_width設定を加えたものになります.数字付の単一列の出力では
(`-n'オプションとは異なり)制限されることによるオーバーフローが
発生するかもしれません.
- `-r'
- `--no-file-warnings'
-
引数fileが開けなかったとき,警告メッセージを出力しません.(しか
し,終了ステータスはゼロではありません.)
- `-s[char]'
- `--separator[=char]'
-
単一文字charで列を分けます.charのデフォルトは,
`-w'を用いないとTAB文字で,`-w'を用いると`no
character'になります.`-s'が無い場合のデフォルトの分離文字は
`space'に設定されます.`-s[char]'は,`-w'が設定され
ていない場合,全ての三列オプション(`-COLUMN'|`-a
-COLUMN'|`-m')の行の切り詰めを停止します.それは,
POSIX準拠の公式なものです.
- `-S string'
- `--sep-string[=string]'
-
出力の列を分けるためstringを使用します.`-S'オプションは
`-s'オプションと異なり,`-W/-w'オプションに対し効果があ
りません.それは行の切り詰めや列の整列に効果がありません.`-S'
を用いず,`-J'を用いると,
pr
はデフォルトの出力の分離
文字のTABを使用します.`-S'や`-J'を用いないと,
pr
は`space'を使用します(`-S" "'と同じです).
`-Sstring'を用るとき,stringを空にしてはいけません.
stringが無い`--sep-string'は`--sep-string=""'と等
価です.
古いシステムでは,pr
は時代遅れのオプション
`-S[string]'を代わりにサポートし,stringはオプショ
ンになります.POSIX 1003.1-2001 (see section 2.6 標準への準拠)ではこの古い使用方法を許可していません.移植性がある空の
stringを指定するため,`--sep-string'を使用してください.
- `-t'
- `--omit-header'
-
それぞれのページに,通常のヘッダ[とフッタ]を出力せず,ページの底まで補
充しません(空白行またはフォームフィードを用います).ページ構造は生成さ
れませんが,入力ファイルで設定されているフォームフィードは維持されます.
前もって定義されたページ化は変更されません.`-t'や`-T'は,
他のオプションとともに使用すると便利かもしれません.例えば,`-t
-e4'は,入力ファイルのTAB文字を四つのスペースに展開しますが,それ以外
の変更を行いません.`-t'の使用は`-h'に優先します.
- `-T'
- `--omit-pagination'
-
ヘッダ[とフッタ]を出力しません.更に,入力ファイルのフォームフィード設
定を全て削除します.
- `-v'
- `--show-nonprinting'
-
出力できない文字を,八進数のバックスラッシュ表記で出力します.
- `-w page_width'
- `--width=page_width'
-
複数のテキスト列出力に対してのみ,ページ幅をpage_width文字数に設
定します(page_widthのデフォルトは72です).`-s[CHAR]'は,
デフォルトページ幅を停止し,すべての行を切り詰め,列を整列します.十分
な長さの行は,列オプションの設定にかかわらずマージされます.
page_width設定が無い場合,おそらく単一列の出力になります.
POSIX準拠の公式なものです.
- `-W page_width'
- `--page_width=page_width'
-
ページ幅をpage_width文字に設定します.それは列オプションによらず
有効です.`-J'が使用されない場合,テキスト行は切り詰められます.
三列オプション(`-column',`-a -column',または
`-m')の一つとともに用いた場合,列の整列は常に使用されます.セパ
レータオプションの`-S'や`-s'は,`-W'オプションに
効果がありません.デフォルトは72文字です.`-W page_width'が
無く,あらゆる列オプションが無い場合,行の切り詰めは行われません(下位
互換を保つためと,よくある仕事に合わせるために定義されています).それ
は,`-W 72 -J'と等価です.ヘッダ行は常に切り詰められません.
4.3 fold
: 指定された幅に合わせるため,入力行を折り曲げる
fold
は,それぞれのfile(`-'は標準入力を意味します)
や,与えられない場合は標準入力を,長い行を改行しながら標準出力に書き出
します.概要です.
| fold [option]... [file]...
|
デフォルトで,fold
は80列以上の幅の行を改行します.出力は必要
な行数に分けられます.
fold
はデフォルトで画面の列を数えます.このため,タブは一列以
上に数えられ,バックスペースは列のカウント数を減らし,そして,キャリッ
ジリターンは列をゼロに設定します.
プログラムは,以下のオプションも受け入れます.2. 共通のオプションも参
照してください.
- `-b'
- `--bytes'
-
列ではなくバイトを数え,そのため,タブ,バックスペースと,キャリッジリ
ターンは,他の文字同様にそれぞれ一列カウント数を上げます.
- `-s'
- `--spaces'
-
単語の境界で改行します.列は最後の空白の後で,最大の列の長さの前で改行
されます.そのような空白行が行に含まれていない場合,行は最大の行幅で通
常通り改行されます.
- `-w width'
- `--width=width'
-
80の代わりに,width列の最大行幅を使用します.
古いシステムでは,fold
は時代遅れのオプション
`-width'をサポートしています.POSIX 1003.1-2001
(see section 2.6 標準への準拠)では,これは許可されていません.代わり
に`-w width'を使用してください.
This document was generated
by Akihiro Sagawa on February, 25 2004
using texi2html