問題は、二つあった。
一つは、CentOS(システムはutf8)上で、.procmailrcをEUC、nkfで変換するコードをEUCにしていたつもりだったのだが、これがどうもgrepでマッチできていなかったように思える。
試しに、.procmailrcをutf8、nkfで変換するコードをutf8にしたらgrepでマッチさせることができた。
二つ目の問題は、grepで先頭を表すキャレット'^'を使うと、どうもprocmail経由ではマッチさせることができない。途中のデータをファイルに落として、そのデータに対して手動でgrepをかけると先頭の検出ができる。しかし、procmail経由で実行した場合には先頭検出ができなかった。原因は不明。しかし、空白文字を省くと使用できることがわかった。
結果として、現在は下記のような設定にしている:
:0 * ^Subject:[<空白><タブ>]*\/.* * ? echo "$MATCH" | nkf -mZ1 --utf8 | sed -e's/[<空白>\t]//g' | grep '^キーワード' .振り分けフォルダ/ |
- <空白>は半角空白文字、<TAB>はタブ文字を表す。
- キーワードは空白文字(半角空白文字、タブ文字)を除く
- '^'は先頭を表すので、先頭でなくてよければ取り除く。
- .procmailrcはutf8で保存する
* ! ? echo "$MATCH" | nkf -mZ1 --utf8 | sed -e's/[<空白>\t]//g' | grep '^キーワード' |
0 件のコメント:
コメントを投稿