[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

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).

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

-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を結合し一列 ごとに並列に全てを出力します.概要です.

 
pr [option]… [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

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

+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 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 標準への準拠)ではこの古い使用方法を許可していません.移植性がある空の 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はデフォルトで画面の列を数えます.このため,タブは一列以 上に数えられ,バックスペースは列のカウント数を減らし,そして,キャリッ ジリターンは列をゼロに設定します.

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

-b
--bytes

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

-s
--spaces

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

-w width
--width=width

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

古いシステムでは,foldは時代遅れのオプション ‘-width’をサポートしています.POSIX 1003.1-2001 (see section 標準への準拠)では,これは許可されていません.代わり に‘-w width’を使用してください.

終了ステータスのゼロは成功を示し,ゼロ以外の値は失敗を示します.


[ << ] [ >> ]           [冒頭] [目次] [見出し] [ ? ]

この文書は新堂 安孝によって2009年9月22日texi2html 1.82を用いて生成されました。