pick(1) FreeBSD 一般コマンドマニュアル

pick

前のページ 上に戻る 次のページ

pick



SYNOPSIS

     pick   [+folder]   [msgs]  [-and ...]  [-or ...]  [-not ...]
            [-lbrace ... -rbrace]           [--component pattern]
            [-cc pattern]     [-date pattern]     [-from pattern]
            [-search pattern]  [-subject pattern]   [-to pattern]
            [-after date]    [-before date]    [-datefield field]
            [-sequence name ...]  [-public]  [-nopublic]  [-zero]
            [-nozero] [-list] [-nolist] [-help]

     典型例:
            scan `pick -from jones`
            pick -to holloway -sequence select
            show `pick -before friday`


DESCRIPTION

       pick  はフォルダ内のメッセージから指定した内容を探し、見つ
       かったメッセージを識別します。二つのタイプの検索要素が使え
       ます。すなわち、パターンマッチと日付制限です。

       パ ターンマッチには grep(1) の改変版が使われていて、 `pat-
       tern' には正規表現(ed(1) 参照)が使えます。 `-search' オ プ
       ションと共に使うと、`pattern' は直接使え、その他のオプショ
       ンと共に使うと、grep パターンは以下のように解釈されます。

            "component[ \t]*:.*pattern"

       この事は、`-search' オプションで指定されたパターンはメッセ
       ージ中の全て、ヘッダーもボディも検索されますが、その他のパ
       ターンマッチはヘッダー内の指定のコンポーネントだけが検索さ
       れる事を意味します。書式

            `--component pattern'

       は以下の省略形と考えられます。

            `-search "component[ \t]*:.*pattern" '

       "To:"、"cc:"、"Date:"、"From:"、または "Subject:" のどれで
       もないコンポーネントを検索 す る 事 も 出 来 ま す。 例 え
       ば、`pick --reply-to pooh' という風にです。

       パターンマッチは基本的には行単位で行なわれます。メッセージ
       のヘッダー内では、それぞれのコンポーネントは一つの長い行と
       して扱われますが、ボディではそれぞれの行は分割して扱われま
       す。検索パターン中の小文字はメッセージ中の大文字にも小文字
       に も マッチしますが、大文字は大文字のみにマッチします。ま
       た、ヘッダーが RFC-2047 エンコードされている場合、検索文字
       列 に デコード後の文字列を指定して、そのエンコード文字列に
       マッチさせる事が出来ます。

       `-date' オプションに対しても(上述の)パターンマッチ処理が行
       なわれます。従って、ある日に出されたメッセージを探す場合、
       す。 `-before' はその逆です。

       `-after' と `-before' オ プ ショ ン は 共 に、 引 数 と し
       て、RFC-822   形式の日付表記を指定する事が出来ます。この場
       合、完全な日付表記は必要なく、 pick は抜けている部分 を デ
       フォルトで補います。これら、デフォルトが使える部分は、タイ
       ムゾーン、時刻とタイムゾーン、日付、日付とタイムゾー ン で
       す。全てのデフォルトは現在の日付、時刻、タイムゾーンです。

       RFC-822 形式の日付 に 加 え て、  pick   は 任 意 の 曜 日
       ("sunday"、"monday"、 など)、特別な日である "today"、"yes-
       terday" (24時間前)、そして "tomorrow" (24時間後)を認識しま
       す。 全 て の 曜日は過去の日を意味します (例えば、火曜日に
       pick に "saturday" と指定した場合、それは先週の土曜日の 意
       味であって、今週の土曜日の事ではありません)。

       最 後に、これら特別な指定に加えて、 pick は "-dd" という形
       式を認識します。これの意味は "dd" 日前です。

       pick は検索指定の際に複雑な論理演算 子 を 認 識 し ま す。
       `-and'、`-or'、`-not'、 そ して `-lbrace ... -rbrace' オプ
       ションです。例えば、

            pick -after yesterday -and
                 -lbrace -from freida -or -from fear -rbrace

       は最近に "frieda" か "fear" から送られてきたメッセージを捜
       し出します。

       そ れ ぞ れの検索オプションが、`-not' オプションより優先さ
       れ、それは `-and' より優先され、それは `-or' より優先さ れ
       ます。このデフォルトの優先順位を変えるためには、 `-lbrace'
       と `-rbrace' オプションが使えます。これらはそれぞれ、論 理
       式に於ける左括弧と右括弧に相当します。

       も し 検索オプションが何も指定されなかった場合、指定された
       メッセージ (このデフォルトは "all") の全てが選択されます。

       一 旦、検索が終了した時、 `-list' オプションが指定されてい
       ると、選択されたメッセージのメッセージ番号が改行で区切られ
       て、標準出力に書き出されます。これはシェルのバッククォート
       処理を使って、他の MH プログラムに素早く引数を与える 目 的
       に、極めて有用です。例えば、コマンド

            scan `pick +todo -after "31 Mar 83 0123 PST"`

       は 指 定のフォルダで、検索により選択されたメッセージだけを
       scan します。 pick によるコンテクスト・ファイルの 変 化 は
       scan  が呼び出される前に書き出される点に注目して下さい。つ
       まり、scan の方にはフォルダ名を指定する必要がない訳です。

       `-list' オプションによる結果は使わずに、 `-sequence  name'

       pick が `-sequence name' オプションを処理す る 時 は 常 に
       `-nolist' が指定される事に注意して下さい。

       デ フォルトでは、pick はシーケンスに追加する前に、それまで
       のシーケンスの内容を消します。この動作は `-nozero'   オ プ
       ションで抑制されます。これは pick で選択されたメッセージが
       指定のシーケンスに追加される事を意味します。そして、そのシ
       ーケンスに含まれていたメッセージはそのまま残ります。

       `-public' と `-nopublic' オプションは mark 同様の事を pick
       に指定します。


FILES

       $HOME/.mh_profile                   ユーザーのプロファイル


PROFILE COMPONENTS

       Path:                ユーザーの MH ディレクトリを決める
       Current-Folder:      デフォルトのカレント・フォルダを示す


SEE ALSO

       mark(1)


DEFAULTS

       `+folder'            デフォルトはカレント・フォルダ
       `msgs'               デフォルトは all
       `-datefield date'
       `-nopublic'          フォルダが書き込み禁止の場合。さもなくば、`-public'
       `-zero'
       `-list'              `-sequence' の場合、デフォルト。さもなくば、`-nolist'


CONTEXT

       もしフォルダが指定されれば、それがカレント・フォルダになり
       ます。


HISTORY

       以前のバージョンの MH では、 pick コマンドは選択されたメッ
       セージを showscan、または refile してました。オプショ ン
       により、これらの動作のどれかが行なわれていた訳ですが、これ
       は UNIX 的な物の見方に反するような考え方とも言えます。そこ
       で、pick  はシーケンスを定義し、そのシーケンスを出力すると
       いう風に変更されました。従って、 pick に他の MH コマンドを
       呼 び 出 すようなオプションを追加し続ける代わりに、pick を
       使って、それらのコマンドの引数を生成する事が出来ます。

       また、以前のバージョンの pick は検索文字列や日付/時刻制 限
       を指定しない場合にはエラーになっていました。現在のバージョ
       ンではそんな事はなく、単に指定したメッセージの全てにマッチ
       します。これにより、例えば次のような事が出来ます。

            show `pick last:20 -seq fear`

       `-after' と `-before' に対する引数は、pick を呼び出す シェ
       ルにとって一語として解釈される形でなければなりません。従っ
       て、通常、これらのオプションに対する引数はダブル・クォート
       で 囲まれなければなりません。さらに、`-datefield' オプショ
       ンは、それが適応される `-after' や `-before' オプション の
       前に置かれなければなりません。

       もし pick が次のようなバッククォート処理を行ない、

            scan `pick -from jones`

       pick が何もメッセージを選択しなかった場合 (例えば、"jones"
       から来たメッセージがなかった場合)、シェルはまだ外側のコ マ
       ンド(例えば "scan")を実行しようとします。

       マッチするメッセージがなかったので、 pick は何も出力しませ
       ん。そして、pick をバッククォートした結果として、外側の コ
       マ ン ドに与えられる引数は空になります。 MH プログラムの場
       合、引数がないと、外側のプログラムは、あたかもデフォルトの
       `msg'   ま た は `msgs' であるかのように振舞います (例えば
       scan の場合は "all")。この期待されない振舞いを避けるために
       は、 もし `-list' が指定され、その標準出力が端末でない場合
       は、 pick は見つからなかった時に不正なメッセージ番 号  "0"
       を出力すべきでしょう。これにより外側のコマンドがうまく失敗
       してくれるでしょう。

       正規表現では "[l-r]" というパターン文法はサポートされて ま
       せん。マッチさせたい全ての文字を角括弧の中に書かなければな
       りません。



[mh.6]                        MH.6.8                      PICK(1)

ABELNET VPSサービス