Scroll to navigation

PTX(1) General Commands Manual PTX(1)

名前

ptx - 整列済み索引を作成する

書式

ptx [OPTION...] [FILE...]

ptx [-G] [--traditional] [OPTION...] [IN-FILE [OUT-FILE]]

Options:

[-frAORT] [-b FILE] [-g NUMBER] [-i FILE] [-o FILE] [-w NUMBER] [-F STRING] [-M STRING] [-S REGEXP] [-W REGEXP] [--auto-reference] [--break-file=FILE] [--flac-truncation=STRING] [--format={nroff,tex}] [--gap-size=NUMBER] [--ignore-case] [--ignore-file=FILE] [--macro-name=STRING] [--only-file=FILE] [--references] [--right-side-refs] [--sentence-regexp=REGEXP] [--word-regexp=REGEXP] [FILE...]

ptx [-C] [--copyright] [--help] [--version]

説明

GNU 拡張された ptx (デフォルト) は、与えられた FILE それぞれの整列済み索引 (permutated index) を標準出力に書く。 FILE が一つも与えられないと標準入力から読み込む。また FILE が `-' だった場合には、そのファイルには標準入力が用いられる。 結果は結合されるが、各 FILE はそれぞれ独自のコンテクストを持ち、 自動参照を使うときには別々に参照される。

[訳注: 参照 (reference) とは、キーワードの現れるファイル名と行数の表示。]

--traditional モードを使うと、 ptx は入力を IN-FILE から読み、 OUT-FILE に書く。後者が省略されると標準出力に書く。

デフォルトの出力フォーマットは、 キーワードをセンターに、そしてコンテクストがあれば左または右に書く。 --traditional モードでは --format-nroff が用いられる。

オプション

単語に含むことのできない文字を FILE から取得する (このファイルは break file と呼ばれる)。 デフォルトのモードでは、 FILE にある全ての文字が (改行文字も含めて) 考慮される。 過去互換モードでは、空白・タブ・改行の各文字は、常に FILE からは捨てられる。
文字列をソートするとき英大文字小文字を無視する。
フィールド間の空白の最低数を NUMBER に設定する (デフォルトは 3)。
無視するキーワードのリストを FILE から取得する (このファイルは ignore file と呼ばれる。デフォルトは /usr/local/lib/eign)。 各行には単語を一つだけ指定する。 ignore file にある単語は only file にある単語を上書きする。
キーワードのリストを FILE から取得する (このファイルは only file と呼ばれる)。インデックスを生成するとき、 このリストにない単語は無視する。各行には単語を一つだけ指定する。
各行の前にコンテクストを指示する文字列 (行頭の単語) を付ける。 ptx は参照をコンテクストから削除しようとし、 コンテクストが改行で終わる場合にはこれは常に成功する。 このオプションを -S と共に用いたり (これはデフォルト)、 --traditional モードを用いると、参照は常にコンテクストから削除される。
出力行を NUMBER 桁を越えないように切り捨てる。 --right-side-refs の分は含まれないので注意。これを用いた場合は指定桁を越えることがある。
各行の前にファイル名 (標準入力から読み込んだ場合は空文字列)、 行番号、コロンを出力する。 --references より優先する。
--width によって行を切り捨てるときや、コンテクストが行区切りを越えて続く場合に STRING (デフォルトは `\') を出力する。

STRING 中では、(C プログラムで使うような) バックスラッシュを用いたエスケープシーケンスの多くも認識され、 適切な文字に変換される。

nroff や TeX 形式で出力するときに、 STRING をマクロ名に使う (デフォルトは `.xx')。
出力を nroff 形式にする。 印字できない文字はスペースに置換され、クォート文字は二重にして 正しく処理できるようにする。各行のフォーマットは以下の通り:


.xx "TAIL" "BEFORE" "KEYWORD_AND_AFTER" "HEAD" "REF"
--references と似ているが、参照を右に出力する。
REGEXP を行末または文末の評価に用いる。 GNU モードで --references オプションが指定されていない場合のデフォルトは以下:

[.?!][]\"')}]*\\($\\|\t\\|  \\)[ \t\n]*	 

--traditional モードや、 GNU モードで --references オプションが指定されている場合のデフォルトは以下:

\n

-F と同様、バックスラッシュを用いたシーケンスも認識・変換される。

出力を TeX 形式にする。 印字できない文字はスペースに置換し、 いくつかの特殊文字 (`$', `%', `&', `#', `_' など) をバックスラッシュでプロテクトする。 バックスラッシュは `\backslash{}' に、 アクセント記号は `^\{ }' に、 チルダは `~\{ }' に置換し、 その他の音韻記号も可能な限り最も適切な TeX シーケンスに変換する。 各行のフォーマットは以下の通り:

\xx {TAIL}{BEFORE}{KEYWORD}{AFTER}{HEAD}{REF}
REGEXP にマッチする単語をキーワードにする。 --break-file に指定されている単語も出力する。 GNU モードでのデフォルトは:

\w+

--traditional モードでのデフォルトは

[^ \t\n]+

REGEXP が空の場合はデフォルトを用いる。 -F と同じく、バックスラッシュを用いたシーケンスも認識・変換される。

標準出力に短い copyright メッセージを出力して正常終了する。
標準出力に使用方法のメッセージを出力して正常終了する。
標準出力にバージョン情報を出力して正常終了する。

分量が多くなるので、完全な例はここには示していない。

プレインテキスト

ptx の著者である Francois Pinard は、私の出したメールを ptx に通し、以下の返事を送ってくれた (*** は man ページに収めるために手で行った切り捨てを示す)。

>>    /I've had a look at the source,   and I still   ***
>>    /or what is a permutated index,   and what it   ***
> ptx merely produces a sorted list of the vocabulary you
> used, with some context for each, so I can study your
> writing style, for example.  Whenever you use the word 
> "and", it is preceded by a comma :-). 
[ptx は君の使ったボキャブラリをソートしてリストを作り、

前後のコンテクストと共に示してくれるんだ。これを見ると、
例えば君の書き方のクセがわかるわけさ。君が "and" って
いう単語を使う前には必ずコンマを入れる、とかね :-)]

bang パス

news へのポストや email メッセージに対して grep を行い、 bang パスを取得してみよう。例えば:

lightside~% grep posts "^Path: " |cut -b 7- > paths.txt

すると paths.txt の内容は以下のようになるだろう。

lightside!host2!host3!host4!host5!news
lightside!host2!host3!host4!host6!news
lightside!host7!host8!host9|host10|host4|host5!news
lightside!host4!host5!news
lightside!host11!news

これに正規表現を正しくエスケープして ptx を用いてみよう。

lightside~% ptx --sentence-regexp="\n" \

--word-regexp="[^\!]+."

するとポストの経路の解析に適した出力が生成されるだろう。 行数が、ここに示した 5 行よりもずっと多くなると、とても便利になるだろう。

移植性

--traditional を指定すると、 System V の ptx と互換になる。 GNU ptx は行幅をよりうまく使えるのだが、この点も System V の出力に時々現れる異常をまねしようと試みる。 --traditioanl モードとの他の相違点は以下の通り:

 説明 にあるように、引数の取り方が変わる。

 指定できるオプションが -b, -f, -g, -i, -o, -r, -t, -w だけになる。

 デフォルトの出力形式が --format=nroff になる。

 --width で行切り捨てを行うとき、参照の幅を考慮しなくなる。

 8 ビット文字とチルダ (`~') をはねる。 いくつかの制御文字もはねる。

 入力行の 200 文字以降を黙って切り捨てる。

 ignore fileonly file の両方を同時に指定できない。

 オプションに記述したように、 いくつかのオプションのデフォルトが変わる。

注意

プログラムのバグについては bug-textutils@gnu.org に報告してください。
man ページは Ragnar Hojland Espinosa <ragnar@ragnar-hojland.com> が作成しました。

7 October 2002 GNU textutils 2.1