正規表現 · 4 min read · Dec 30, 2025

6.0 マッチングと正規表現 (regular expressions)

著者: Jari Aalto.

1.0 ドキュメントID

  • 1.1 一般
  • 1.2 Procmailとは?
  • 1.3 略語と感謝
  • 1.4 バージョン情報
  • 1.5 ドキュメントのレイアウトとメンテナンス
  • 1.6 提示されたレシピについて
  • 1.7 レシピで使用される変数
  • 1.8 “無駄なcatの使用賞”について
    2.0 Procmailのポイント
  • 2.1 procmailの開発場所
  • 2.2 Procmailリソース
  • 2.3 Emacs用のProcmailモード
  • 2.4 Procmailモジュールライブラリプロジェクト
  • 2.5 UBEをフィルタリングするためのProcmailコード
    3.0 ドライランテスト
  • 3.1 ドライランテストとは?
  • 3.2 ドライラン後にFromフィールドが正常でない理由
  • 3.3 procmail変数のデフォルト値を取得する
    4.0 覚えておくべきこと
  • 4.1 最新のprocmailを取得する
  • 4.2 Cshのチルダはサポートされていない
  • 4.3 レシピは正しく書き始めること
  • 4.4 SHELLを常に設定する
  • 4.5 PATHを確認して設定する
  • 4.6 常にログを保持する
  • 4.7 ディレクトリにトレーリングスラッシュを追加しない
  • 4.8 DELIVEREDという用語を忘れない
  • 4.9 コメントを間違った場所に置かない
  • 4.10 ブレースの配置
  • 4.11 ローカルロックファイルの使用
  • 4.12 グローバルロックファイル
  • 4.13 すべての! * $をどこに置くべきか
  • 4.14 自動返信を送信する場合はX-loopヘッダーを使用する
  • 4.15 余分なシェルレイヤーを避け、SHELLMETASのコマンドを確認する
  • 4.16 使用するシェルコマンドを考える
  • 4.17 シェルプログラムを呼び出すときは絶対パスを使用する
  • 4.18 レシピを一時的に無効にする
  • 4.19 メッセージのバックアップを保持する
  • 4.20 procmailレシピの順序
    5.0 Procmailフラグ
  • 5.1 フラグの順序
  • 5.2 レシピの最上部にHBフラグ(警告)
  • 5.3 フラグwと|付きレシピ
  • 5.4 フラグw、ロックファイルと|付きレシピ
  • 5.5 フラグfとwを一緒に
  • 5.6 フラグhとb
  • 5.7 フラグhと/dev/nullへの沈下
  • 5.8 フラグiとパイプフラグf
  • 5.9 フラグr
  • 5.10 フラグcの背景
  • 5.11 ネストされたブロックの前のフラグcが子をフォークする
  • 5.12 フラグcとフォークペナルティの理解
  • 5.13 ネストされたブロックの前のフラグ
  • 5.14 フラグaAeEチュートリアル
    6.0 マッチングと正規表現 (regular expressions)
  • 6.1 正規表現における抽象化の哲学
  • 6.2 マッチは大文字小文字を区別しない
  • 6.3 Procmailは複数行マッチを使用する
  • 6.4 ヘッダーはマッチングの前に展開される
  • 6.5 スペース-タブ症候群の改善
  • 6.6 感嘆符の処理
  • 6.7 文字クラスを生成するためのルール
  • 6.8 条件の最後のスペースをマッチさせる
  • 6.9 先頭のバックスラッシュに注意
  • 6.10 TOマクロの正しい使用
  • 6.11 Procmailの正規表現エンジン
  • 6.12 Procmailとegrepの違い
  • 6.13 Procmailの最小マッチングの理解(ケチ vs. 貪欲)
  • 6.14 \/と()\/の説明
  • 6.15 ^^と^の説明
  • 6.16 伝統的なANDing
  • 6.17 伝統的なORing
  • 6.18 デ・モルガンの法則を使用したORing
    7.0 変数
  • 7.1 変数の設定と解除
  • 7.2 変数の初期化とsh構文
  • 7.3 変数のテスト
  • 7.4 $VARは何を意味するのか?
  • 7.5 変数使用時の一般的な落とし穴
  • 7.6 引用: シングルまたはダブルクォートの使用
  • 7.7 引用: 外部プログラムへの値の渡し
  • 7.8 外部プログラムからの値の受け取り
  • 7.9 値Nで変数をインクリメント
  • 7.10 値の比較
  • 7.11 文字列: 与えられた文字列に何文字あるか?
  • 7.12 文字列: トレーリング改行を取り除く方法。
  • 7.13 文字列: 文字列の最後のN文字を導出する。
  • 7.14 文字列: 文字列から部分一致を取得する。
  • 7.15 文字列: Procmail文字列操作の例
  • 7.16 メッセージがファイルされた場合にフラグを上げる方法
  • 7.17 条件行のドル記号。
  • 7.18 謎のfoo変数を見つける
  • 7.19 コードを変数に格納する
  • 7.20 ヘッダーを変数に取得する。
  • 7.21 値を小文字に変換する
    8.0 提案と雑多
  • 8.1 procmailを高速化する
  • 8.2 procmailインストールの例を参照
  • 8.3 受信メールの統計を印刷する
  • 8.4 クォータ外にUBEメールボックスを保存する
  • 8.5 メッセージの最初の5-30行を使用する
  • 8.6 スクリプトでcatまたはechoを使用する?
  • 8.7 副作用として追加のシェルコマンドを実行する方法?
  • 8.8 シェルスクリプトから”ok”の戻りステータスを強制する
  • 8.9 自分の.procmailrcを他の人に公開する
  • 8.10 日付を効率的に使用する
  • 8.11 シンプルなヘッダーログを保持する
  • 8.12 メッセージをgzippingする
  • 8.13 emergency stop for your .procmailrc
    9.0 スコアリング
  • 9.1 例によるスコアの使用
  • 9.2 簡単なスコアチュートリアル
  • 9.3 スコアの範囲
  • 9.4 文字列の長さをカウントする
  • 9.5 メッセージ内の行数をカウントする(行を追加する:ヘッダー)
  • 9.6 本文がヘッダーより長いかどうかを判断する
  • 9.7 最後のReceivedヘッダーをマッチングする
  • 9.8 スコアリングで値範囲をテストする(bogofilter)
  • 9.9 Content-Lengthヘッダーを追加する方法
  • 9.10 メッセージサイズまたは行数をテストする
  • 9.11 再帰的なincludercでカンマをカウントする
    10.0 Formailの使用
  • 10.1 formail -xでフィールドを取得する
  • 10.2 formailの-rtスイッチを常に使用する
  • 10.3 -rtを使用してFromアドレスを書き換える
  • 10.4 formail -rtとResent-Fromヘッダー
  • 10.5 メッセージを引用する
  • 10.6 メッセージを引用せずに
  • 10.7 返信メッセージにヘッダーと本文を含める方法
  • 10.8 メッセージの先頭にテキストを追加する
  • 10.9 メッセージの最後にテキストを追加する
  • 10.10 引用されたメッセージの前にテキストを追加する
  • 10.11 ファイルから追加のヘッダーを追加する
  • 10.12 ダイジェストを分割する
  • 10.13 メールボックス:個別ファイルに分割する
  • 10.14 メールボックス:メールボックスからすべてのFromアドレスを抽出する
  • 10.15 メールボックス:全メールボックスにprocmailレシピを適用する
  • 10.16 メールボックス:各メールに対して一連のコマンドを実行する(メールボックスを分割する)
  • 10.17 オプション-Dとキャッシュ
  • 10.18 オプション-Dと本文のmessage-id
  • 10.19 formail呼び出しを減らす(条件付きでフィールドを追加)
  • 10.20 formail -A -aオプション
  • 10.21 formail -e -sオプション
    11.0 メーリングリストメッセージの保存
  • 11.1 メーリングリストを検出するためのサブルーチンpm-jalist.rcの使用
  • 11.2 プラスアドレス指定を使用する
  • 11.3 追加情報のためのRFCコメントトリックを使用する
  • 11.4 シンプルなメーリングリスト処理
  • 11.5 TOに応じたアーカイブ
  • 11.6 メーリングリストを検出するためのReturn-Pathの使用
    12.0 Procmail、MIMEおよびHTML
  • 12.1 MIME文献
  • 12.2 MIMEノート
  • 12.3 MIMEまたはHTMLを扱うソフトウェア
  • 12.4 MIMEコンテンツタイプapplication/ms-tnef
  • 12.5 HTML MIMEメッセージをトラップする
  • 12.6 HTMLメッセージに関する苦情
  • 12.7 HTML本文をプレーンテキストに変換する
  • 12.8 不要なMIME添付ファイル(HTML、vcard)を取り除く
  • 12.9 誰かにHTMLページの内容をプレーンテキストで送信する
    13.0 シンプルなレシピの例
  • 13.1 保存: MHフォルダ – 番号付きメッセージ
  • 13.2 保存: 月ごとのフォルダに
  • 13.3 修正: フィルタリングの基本
  • 13.4 修正: メッセージ本文の周りの空行を圧縮
  • 13.5 修正: ヘッダーを常に同じ順序にシャッフル
  • 13.6 サービス: 空のメッセージへの自動応答
  • 13.7 サービス: Ping応答
  • 13.8 サービス: procmailによるシンプルなバケーション
  • 13.9 サービス: バケーションコードの例
  • 13.10 サービス: 自動転送
  • 13.11 サービス: 特定のメッセージのみを転送
  • 13.12 サービス: ダイジェストを作成
  • 13.13 キル: 広告ヘッダーとフッターを削除
  • 13.14 キル: procmailによるシンプルなキルファイルレシピ
  • 13.15 キル: 重複メッセージ
  • 13.16 キル: シンプルなレシピによるスパムフィルター
  • 13.17 キル: (un)subscribeメッセージ
  • 13.18 時間: 一日一回のcronのようなジョブ
  • 13.19 時間: 指定した時間にレシピを実行
  • 13.20 時間: メールをトリガーしcronを使用する
  • 13.21 デコード: Uudecode
  • 13.22 デコード: MIME
  • 13.23 メッセージの本文にコマンドを送信する方法
  • 13.24 行に二つの単語をマッチさせるが、一つはマッチさせない
  • 13.25 個人XXマクロを定義する方法
  • 13.26 本文マッチにより件名を変更する方法
  • 13.27 他のヘッダーに応じて件名を変更する方法
  • 13.28 パラメータ付きプログラムを呼び出す方法
    14.0 雑多なレシピ
  • 14.1 有効なMessage-Idヘッダーをマッチさせる
  • 14.2 メッセージ内で二つのファイルを送信する
  • 14.3 メッセージの過剰な引用
  • 14.4 メッセージをページャにチャンクで送信する
  • 14.5 メッセージが到着したときに特定の音を再生する
  • 14.6 複数のOriginal-CcおよびOriginal-Toヘッダーを結合する
  • 14.7 暗号化形式で敏感なメッセージを転送
    15.0 ProcmailとPGP
  • 15.1 pgpメッセージを自動的に復号する
  • 15.2 キーサーバからのキー取得
  • 15.3 受信pgpキーを自動的に取得
    16.0 Includercの使用
  • 16.1 使用: 複数のrcファイル
  • 16.2 使用: 条件付きでrcファイルを呼び出す
  • 16.3 使用: rcファイルを自動的に読み込む
  • 16.4 作成: rcファイルの命名
  • 16.5 作成: procmail変数を保存する際の名前空間の使用
  • 16.6 作成: rcファイル内の公開およびプライベート変数
  • 16.7 一般的な目的のrcファイルを構築するための指針
  • 16.8 includercスケルトン
    17.0 メーリングリストサーバ
    18.0 一般的なトラブル
  • 18.1 Procmailモード: 通常、配信、メールフィルタ。
  • 18.2 Procmailをsendmail Mlocalメールフィルタデバイスとして使用
  • 18.3 Procmailは8ビット文字を渡さない
  • 18.4 ISPがprocmailのインストールにあまり興味がない
  • 18.5 ISPがシステム全体のprocmailrcを持っている; これは良いアイデアですか?
  • 18.6 Procmailはメールボックスとディレクトリの権限を変更する
  • 18.7 コンパイル中にmboxの権限を660に変更する
  • 18.8 .forwardファイルは実際のファイルでなければならない
  • 18.9 procmailがすでにLDAの場合は.forwardを使用する
  • 18.10 書き込みに失敗した場合、メールはメールキューに入れるべき
  • 18.11 Qmail: procmailと連携させる方法
  • 18.12 Qmail: Procmailは/var/spool/mailからのみファイルを探す
  • 18.13 Qmail: procmail 3.11pre7のパッチをMaildirsで動作させる
  • 18.14 AFS: HOMEがAFSセルにある場合にProcmailを使用する方法
  • 18.15 助けて、ある馬鹿が私のアドレスを30のメーリングリストに送信した
  • 18.16 助けて、Procmailがビープ音を鳴らし、コンソールに印刷する
  • 18.17 助けて、procmailがメールをコンソールにダンプする
  • 18.18 助けて、メールボックスのFrom_行が破損している
  • 18.19 ユーザーのメールをHOMEではなく/var/spool/に向ける
  • 18.20 NFSマウント/var/mailは悪いパフォーマンスを得る良い方法
  • 18.21 sendmailの応答がLOGFILEに表示されない
  • 18.22 procmailをコンパイルしロックスキームを選択する
  • 18.23 多くのメールを転送すると重い負荷がかかる
  • 18.24 MDA Procmailが失敗した場合、メールはどうなるか
  • 18.25 Procmailは90Mbのメッセージ全体をメモリに読み込む
  • 18.26 助けて、procmailが時々巨大なメモリの塊を使用する
  • 18.27 Procmailが私の詳細なログでメモリ不足を示した
  • 18.28 変数DEFAULTとORGMAIL
  • 18.29 DEFAULTにメールを送信できない場合
  • 18.30 変数DROPPRIVS
  • 18.31 変数HOME
  • 18.32 変数HOST
  • 18.33 変数LINEBUF
  • 18.34 変数LOGとLOGFILE
  • 18.35 変数TRAP
  • 18.36 変数UMASK
  • 18.37 UMASKと権限
  • 18.38 バックティックと”|”レシピのパフォーマンス差
  • 18.39 Procmailの一時ファイル名
  • 18.40 パラメータ$@
  • 18.41 Procmail変数はヌル終端(ヌル文字列の検出)
  • 18.42 FROMDAEMON TOとTOと大文字小文字の区別
  • 18.43 TO_マクロの解読
  • 18.44 TO_マクロとRFC 822
  • 18.45 FROM_DAEMONの解読
    19.0 技術的事項
  • 19.1 終了コードのリスト
  • 19.2 優先度コードのリスト
  • 19.3 sendmailと-t
  • 19.4 RFC822のReply-Toとformailの問題
  • 19.5 ProcmailとIMAPサーバ
  • 19.6 メールを処理するマシン
  • 19.7 procmailをコンパイルしMAILSPOOLHOMEを選択する
    20.0 Emacs用のProcmailソフトウェア
  • 20.1 Emacsとは
  • 20.2 Emacs procmail-modeとProcmailコードチェック(Lint)
  • 20.3 Gnusでprocmailを使用する理由
  • 20.4 procmail用のGnusの設定 - 基本
  • 20.5 procmail用のGnus - さらに詳しく
  • 20.6 EmacsとGnus - スプールファイルの操作
  • 20.7 Gnus記事のスニペット
    21.0 RFC、コメントのリクエスト
  • 21.1 RFCとその管轄(アドレスの変更)
  • 21.2 アドレスの変更に関するコメント
  • 21.3 RFCと有効なメールアドレス文字
  • 21.4 RFCとlogin-name@fdqn
  • 21.5 RFCとメッセージの署名
  • 21.6 RFCとUsenet新sgroupsでのMIMEの使用
  • 21.7 一部のRFCポインタ
    22.0 Eメールヘッダーの紹介
  • 22.1 メールについてもっと知る(リソース)
  • 22.2 アラン・ステッベンズによる講義
  • 22.3 受信メッセージに適用
    23.0 メッセージヘッダー
  • 23.1 正しいFromアドレス構文とは
  • 23.2 X-UIDLヘッダーとは
  • 23.3 最初のFrom_ヘッダーとは
  • 23.4 メッセージ-IDヘッダー
  • 23.5 Receivedヘッダー
  • 23.6 Return-Path
  • 23.7 Errors-To
  • 23.8 X-Subscription-Info
  • 23.9 Reply-Toヘッダー
  • 23.10 Mail-Copies-Toヘッダー
  • 23.11 Mail-Followup-ToおよびReply-To-Personalヘッダー
  • 23.12 Content-LengthヘッダーとFrom_の仕様
  • 23.13 CCコピーに関する道徳
Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。