[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

4. ファイルの内容の書式化

これらのコマンドは,ファイルの内容を再書式化します.


4.1 fmt: 段落のテキストを再書式化する.

fmtは,与えられた(最大)文字数(デフォルトは75)の出力行を生成するた め,行を補充し繋げます.概要です.

 
fmt [option]… [file]…

fmtは,指定されたfile引数(または,与えられない場合は標準入 力)からファイルを読み込み,標準出力に書き出します.

デフォルトで,空白行,単語間のスペース,そして字下げは出力で維持されます. 異なる字下げのある連続した入力行は連結されません.タブは入力で展開され, 出力に差し込まれます.

fmtは,文の終りの改行しようとし,文の最初の単語の後や,文の最後の 単語の前での改行を避けようとします.文の切れ目は段落の終り,または, あらゆる`.?!'で終る単語に,2つのスペースか行の終りが続くものと定義 されていて,あらゆるカッコや引用符の内部は無視されます.TeXのように, fmtは,行の分割を選択する前に"段落"全体を読み込みます.アルゴリ ズムは"Breaking Paragraphs Into Lines(段落を行に区切る)"の変種です (Donald E. Knuth and Michael F. Plass, Software--Practice and Experience, 11 (1981), 1119-1184).

プログラムは以下のオプションを受け入れます.共通のオプション,も参照 してください.

` -c'
` --crown-margin'

Crown marginモード: 段落の最初の2行の字下げを保存し,それに続くそ れぞれの行の左の余白を,2行目の余白に揃えます.

` -t'
` --tagged-paragraph'

Tagged paragraphモード: crown marginモードに似ていますが,段落の最 初の行の字下が2行目の字下げと同じ場合,最初の行は1行の段落として扱われま す.

` -s'
` --split-only'

行の分割のみです.短い行を長い形式に連結しません.これはコードのサンプル 行と,その他の"書式化された"テキストを,醜く結合されることを妨げます.

` -u'
` --uniform-spacing'

スペースを統一します.単語の間のスペースを1つのスペースに,そして文の間 のスペースを2つのスペースに減らします.

` -width'
` -w width'
` --width=width'

出力ファイルをwidth文字(デフォルトは75)まで補充します.fmt は最初に,これより7%短い行にし,行の長さのバランスのための空間を与えよう とします.

` -p prefix'
` --prefix=prefix'

prefix (空白で始めることも可能です)で始まる行のみ,書式化を適用し ます.prefixと前置されたあらゆる空白は,書式化のため取り除かれ,それぞれ の出力行に再び取り付けられます.1つの使用方法は,ある種のプログラムのコ メントの書式化で,コードは変化されないままになります.


4.2 pr: 印刷のためのファイルのページ化とコラム化

prは,それぞれのfile (`-'は標準入力を意味します),また は,与えられない場合は標準入力を,複数列の書式で,ページ化された任意の出 力で,標準出力に書き出します.オプションで,全てのfileを結合し,1 列毎に,並列に全てを出力します.概要です.

 
pr [option]… [file]…

デフォルトで,5行のヘッダがそれぞれのページに出力されます.日付,ファイ ル名,そしてページ番号がある行があり,後の2行は空白行です.また,5行の空 白行を持つフッタも出力します.`-F'オプションで,3行のヘッダを出力し ます.2行の空白行は削除され,フッタは使用されません.両方の場合でのデフォ ルトのpage_lengthは,66行です.テキスト行のデフォルト数は56 (`-F'が無い場合)から63 (`-F'がある場合)まで変化します.ヘッダ のテキスト行は,`yyyy-mm-dd HH:MM string Page nnnn'という形式で, page_widthまで使用します.文字列は,ヘッダ文字列をセンタリングした ものになります.

入力でのフォームフィードは,出力で改ページとなります.複数のフォームフィー ドは空のページを生成します.

列は同じ幅で,オプションの文字列(デフォルトは`space')で分けられてい ます.複数列の出力では,`-J'オプションを使用していない場合,行は常 にpage_width (デフォルトで72)で切り詰められます.単一列での出力は, デフォルトでは切り詰められません.その場合,行を切り詰めるため`-W' オプションを使用してください.

Including version 1.22i:

いくつかの小さなletter options (`-s',`-w')は,より良い posix遵守のオブジェクトにより再定義されています.それ以外の場合で のいくつかの出力は,他のunixに適合されました.下位互換性の侵害は受 け入れられました.

いくつかのnew capital letterオプション(`-J',`-S', `-W')は,小文字のオプションの予期せぬインターフェースを取り消すため, 導入されました.`-N'オプションと2番目の引数`+FIRST_PAGE'の last_pageは,より多くの柔軟性を提供します.入力ファイルのフォーム フィード設定の詳細な取扱は,`-T'オプションを要求します.

大文字のオプションは,小文字のものより優勢です.

いくつかのオプション引数(`-s',`-S',`-e',`-i', `-n'と比較して)は,(posix使用で既に述べられた)オプション文字 の前置から分かれている引数として指定できません.

プログラムは以下のオプションを受け入れます.共通のオプション,も参照 してください.

` +first_page[:last_page]'
` --pages=first_page[:last_page]'

ページfirst_pageから出力を開始し,last_pageで停止します. `:last_page'が無い場合は,ファイルの終りを暗示します.飛ばさ れたページ数を見積もる間,入力ファイルのそれぞれのフォームフィードは,結 果として新しいページになります.`+first_page'がある場合と無い 場合のページの数え方は同じです.デフォルトで,入力ファイルの最初のページ でカウントを開始します(最初のページは出力されません).行の番号付けは, `-N'オプションで変更できます.

` -column'
` --columns=column'

それぞれ単一ファイルで,column列(デフォルトで1)の出力を生成し, `-a'が使用されない場合は,列を下へ出力します.列の幅は, columnが増加するに従い,自動的に減少します.page_widthを増加 させるため,`-W/-w'を使用していない場合も同様です.このオプションは, いくつかの行を切り詰めるかも知れません.それぞれのページの列の行の数は平 均されます.オプション`-e'と`-i'は,複数のテキスト列の出力のた めのものです.`-J'をともに用いた場合,列の整列と行の切り詰めは停止 します.十分な長さの行は,フリーフィールド書式に組み込まれ,`-S'オ プションはフィールドを分けるかも知れません.`-column'は `-m'オプションとともに使用できません.

` -a'
` --across'

それぞれ単一fileを用い,列を下ではなく横切って出力します. `-column'オプションは,1以上のcolumnで与える必要があり ます.列にフィットさせるには余りに長い場合,それは切り詰められます.

` -c'
` --show-control-chars'

ハット表記で(例えば,`^G')を使用して制御文字を出力します.8進のバッ クスラッシュ表記で,その他の印刷不可能な文字を表示します.デフォルトで, 印刷不可能な文字は変更されません.

` -d'
` --double-space'

ダブルスペースを出力です.(1)

` -e[in-tabchar[in-tabwidth]]'
` --expand-tabs[=in-tabchar[in-tabwidth]]'

入力のtabをスペースに展開します.オプションの引数in-tabchar は,入力のタブ文字(デフォルトはTAB文字)です.2番目のオプション引数 in-tabwidthは,入力タブ文字の幅(デフォルトは8)です.

` -f'
` -F'
` --form-feed'

出力ページを分けるため,改行の代わりにフォームフィードを使用します.デフォ ルトページの長さの66行は,変更されません.しかし,ページ毎のテキスト行の 数はデフォルトの56から63行に変更されます.

` -h HEADER'
` --header=HEADER'

ヘッダのファイル名をセンタリングされた文字列headerで置換します.左 側の(`*'で印が付いた)切り詰めは,ヘッダ行全体の`yyyy-mm-dd HH:MM HEADER Page nnnn'がpage_widthより大きくなった場合に発生する かも知れません.`-h ""'は空白行のヘッダを出力します.`-h""'を 使用しないでください.`-h'オプションと引数の間の空白は,常に不可欠 です.

` -i[out-tabchar[out-tabwidth]]'
` --output-tabs[=out-tabchar[out-tabwidth]]'

出力上で,スペースをtabに置換します.オプション引数 out-tabcharは出力されるタブ文字です(デフォルトはTAB文字です).2番 目のオプション引数out-tabwidthは出力されるタブ文字の幅(デフォルト で8)です.

` -J'
` --join-lines'

十分な長さの行に統合します.列オプション`-column',`-a -column'や`-m'とともに使用されます.`-W/-w'の行の切り詰 めを停止します.列の整列は使用されません.`-S[string]'ととも に使用されるかもしれません.`-J'は(`-W'と`-S'とともに),3 列オプションの古い(posix準拠の)オプション`-w'と`-s'を解 決するために導入されました.

` -l page_length'
` --length=page_length'

ページの長さを,ヘッダ[とフッタ]の行を含めて,page_length行(デフォ ルトで66)に設定します.page_lengthが10以下(で`-F'が3以下)の場 合,ヘッダとフッタは取り除かれ,入力ファイルの全てのフォームフィード設定 は,`-T'オプションが指定されたかのように無視されます.

` -m'
` --merge'

全てのfileを並行に,それぞれの列に1つに統合し出力します.列にフィッ トさせるには行が長すぎる場合,それは切り詰められます.fileの(フォー ムフィード設定の)空のページは空の列を生成しますが,stringで印は付 いたままです.結果として,連続した行の番号付けと,統合されたファイル全体 を通じて印が付いた列になります.統合された完全に空のページは,区切りも行 番号もありません.デフォルトヘッダは,`yyyy-mm-dd HH:MM <blanks> Page nnnn'になります.中間の空白部分を満たすため,`-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'と `no character'がなく,`-w'がある場合,TAB文字になります. `-s'が無い場合デフォルトの分離文字は`space'に設定されます. `-s[char]'は,`-w'が設定されていない場合,全ての3列オプション (`-COLUMN'|`-a -COLUMN'|`-m')の行の切り詰めを停止します. それは,posix準拠の公式なものです.

` -S[string]'
` --sep-string[=string]'

出力の列を分けるためstringを使用します.`-S'オプションは `-s'オプションと異なり,`-W/-w'オプションに対し効果がありませ ん.それは,行の切り詰めや列の整列に効果がありません.`-S'が無く, `-J'がある場合,prは,デフォルトの出力セパレータTABを使用し ます.`-S'や`-J'が無い場合,prは`space'を使用しま す(`-S" "'と同じです).string無しで`-S'を使用することは, `-S""'と同じです.prのオプションのいくつかに対し,単一文字の オプション文字に,対応する引数を直後に続ける必要があることに注意してくだ さい.空白を間に入れることはできません.`-S/-s'はその中の1つです. `-S "STRING"'とを使用しないでください.POSIXはこれを要求します.

` -t'
` --omit-header'

それぞれのページに,通常のヘッダ[とフッタ]を出力せず,ページの底まで補充 しません(空白行またはフォームフィードを用います).ページ構造は生成されま せんが,入力ファイルで設定されたフォームフィードは維持されます.前もって 定義されたページ化は変更されません.`-t'や`-T'は,他のオプショ ンとともに使用すると便利かもしれません.例えば,`-t -e4'は,入力ファ イルのTAB文字を4つのスペースに展開しますが,それ以外の変更を行いません. `-t'の使用は`-h'に優先します.

` -T'
` --omit-pagination'

ヘッダ[とフッタ]を出力しません.更に,入力ファイルのフォームフィード設定 から全て削除します.

` -v'
` --show-nonprinting'

出力できない文字を,8進のバックスラッシュ表記で出力します.

` -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'が使用されない場合,テキスト行は切り詰められます.3列オ プション(`-column',`-a -column'または`-m')の 1つとともに用いた場合,列の整列は常に使用されます.セパレータオプション の`-S'や`-s'は,`-W'オプションに効果はありません.デフォ ルトは72文字です.`-W page_width'が無く,あらゆる列オプション が無い場合,行の切り詰めは行われません(下位互換を保つためと,よくある仕 事に合わせるために定義されています).それは,`-W 72 -J'と同じです. `-W page_width'に関係なく,行を溢れさせるのを防ぐため,ヘッダ 行は常に切り詰められます.


4.3 fold: 指定された幅に合わせるため,入力行を折り曲げる

foldは,それぞれのfile (`-'は標準入力を意味します)や, 与えられない場合は標準入力を,長い行を折曲げながら標準出力に書き出します. 概要です.

 
fold [option]… [file]…

デフォルトで,foldは80列以上の幅の行を折曲げます.出力は必要な行 数に分けられます.

foldはデフォルトで画面の列を数えます.こうして,タブは1列以上に数 えられ,バックスペースは列のカウント数を減らし,そして,キャリッジリター ンは列をゼロに設定します.

プログラムは,以下のオプションも受け入れます.共通のオプション,も参 照してください.

` -b'
` --bytes'

列ではなくバイトを数え,そのため,タブ,バックスペースと,キャリッジリター ンは,他の文字同様にそれぞれ1列カウント数を上げます.

` -s'
` --spaces'

単語の境界で改行します.列は最後の空白の後で,最大の列の長さの前で改行さ れます.そのような空白行を行が含まない場合,行は最大の行幅で通常通り改行 されます.

` -w width'
` --width=width'

80の代わりに,width列の最大行幅を使用します.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Akihiro Sagawa on June, 15 2005 using texi2html 1.70.