SCAN(1)

NAME
scan - 一メッセージ毎の一覧を生成

SYNOPSIS
scan [+folder] [msgs] [-clear] [-noclear] [-form formatfile] [-format string] [-header] [-noheader] [-width columns] [-reverse] [-noreverse] [-file filename] [-help]

DESCRIPTION
scan は、指定のメッセージに関して一メッセージ一行の一覧を作ります。 それぞれの行はメッセージ番号、日付、“From:” 行、“Subject” 行、 そして、余裕があればメッセージ・ボディの一部を含んでいます。 例えば、次の通りです。
15+	07/05	Dcrocker	nned  Last week I asked some of
16 -	07/05	dcrocker	message id format  I recommend
18	07/06	Obrien	Re: Exit status from mkdir
19	07/07*	Obrien	“scan” listing format in MH
メッセージ 15 の `+' はこのメッセージがカレント・メッセージである事を 表わします。 メッセージ 16 の `-' はこのメッセージに “Replied:” 行がある (`-annotate' オプションを付けた repl コマンドで付けられます)、 つまり、このメッセージに返事を書いた事を表わします。 メッセージ 19 の `*' はこのメッセージに “Date:” 行がない事を表わします (代わりにこのメッセージの最終更新日が表示されます)。 もし、一覧の各行に Subject 以降にも充分な余地がある場合、頭に << をつけて メッセージ・ボディのテキストで埋められます。 また、ボディが充分に短い場合は >> を付けて 終わります。 scan は指定のメッセージのそれぞれを実際に読み、 希望の行を引き出すためにそれを解析します。 もし、メッセージの形式に間違いがあれば、 解析中に適切なエラー・メッセージが表示されます。 `-header' オプションを付けると、一覧リストを表示する前に見出し行を表示します。 現在は、フォルダ名と現在日時が表示されます (さらなる情報は HISTORY 節を 見て下さい)。 もし、`-clear' オプションが指定され、scan の出力先が端末の場合、 scan は終了の前に画面をクリアする方法を見つけるために、端末のタイプを 決めようと、環境変数 $TERM と $TERMCAP を参照します。 もし、`-clear' オプションが指定され、scan の出力先が端末でない場合 (例えば、パイプやファイル)、scan は終了前に改ページ文字を送ります。 例えば、次のコマンドは
(scan -clear -header; show all -show pr -f) | lpr カレント・フォルダのスキャンリストを作り、改ページに続いて、 フォルダ内の全てのメッセージを1ページずつ整形して出力します。 `-show pr -f' を省略すると、メッセージは繋がって、 一行の見出しと二行の空行で区切られます。 scan の使う出力形式を置き換えるには、 `-format string' または `-form file' オプションが使えます。 この方法で個々のヘッダー行を簡単に取り出す事が出来ます。 string はフォーマット文字列で、file はフォーマット・ファイルです。 詳細は mh-format (5) を参照して下さい。 標準の mh-format (5) エスケープに追加して、 scan は下記の付加的コンポーネント・エスケープも認識します。

エスケープ	戻り値	説明
body	string	ボディの(スペースを縮めた)最初の部分
dtimenow	date	現在時刻
folder	string	カレント・フォルダ名
もしメッセージに Date: ヘッダー行がなかった場合、{date} を扱う ファンクション・エスケープはそのファイル自身の最終更新日を返します。 これは、特にドラフト・フォルダをスキャンするのに手頃です。ドラフトは 通常、Date: 行を持つ事を許されてないからです。 scan は表示を始める前に MH コンテクストを更新します。 従って、長い scan リストを途中で止めた場合も、既に新しいコンテクストが 保存されています。 MH 潔癖症の人はこの仕様を嫌っているでしょう。 ^$HOME/.mh_profile~^ユーザーのプロファイル ^Path:~^ユーザーの MH ディレクトリを決める ^Alternate-Mailboxes:~^ユーザーのメールボックスを決める ^Current-Folder:~^デフォルトのカレント・フォルダを示す inc(1), pick(1), show(1), mh-format(5)
`+folder'    デフォルトはカレント・フォルダ
`msgs'    デフォルトは all
`-format'    デフォルトは上述のような形式
`-noheader'
`-width'    デフォルトは端末の幅
もし、フォルダが指定されれば、それがカレント・フォルダになります。 以前、フォーマット文字列方式を使用するようになる前は、 `-header' で、それぞれの項が何を表わしているのかの見出しを表示していました。 フォーマット文字列方式を使用するようになってからは、これをやめました。 `-format' に対する引数は、scan を呼び出すシェルにとって 一語として解釈される形でなければなりません。 従って、 通常、このオプションに対する引数はダブル・クォートで囲まれなければなりません。
それぞれのコンポーネント・エスケープには、対応するコンポーネント名を持った 最初に現れるメッセージ・ヘッダの内容が設定されます。 同じコンポーネント名を持ったそれ以降のヘッダーは無視されます。

`-reverse' オプションをつけると、scan はメッセージを逆順に表示します。 これはバグと考えるべきでしょう。

`-file filename' オプションは packf で作られたメールドロップ・ファイルの一覧表示を させる事が出来ます。この一覧はそのファイル中にあるそれぞれのメッセージを 含みます。 そのファイルに対してさらに他の処理をさせたければ、msh を 使うべきでしょう。このオプションを付けると `-reverse' は無視されます。