[Namazu-users-ja 22] Re: pnamazuを使用したgrep検索をpdfやoffice文書に対して行いたい

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2004年 7月 14日 (水) 15:29:54 JST


寺西です。

Dai NAKAMURA wrote:
> 
> なるほど。原文書を一旦テキストにしておくわけですね。
> mknmzは、夜バッチで自動実行しています。ですのでそのバッチ中で
> 原文書と同一のフォルダ構成を自動的に切って回るのにちょっと工夫
> が必要ですね。この部分は頑張ってみます。

doccat を使っているということなら
以下のスクリプトを cron で走らせると変換できるのではないかと
思います。

#!/bin/sh
cd /org
find . -type f -iregex ".*\.\(pdf\|doc\|xls\)" -exec /path/conv.sh {} \;

また、/path/conv.sh が必要ですが、この中身は

#!/bin/sh

OUTPUTDIR="/txt"

input=$1
output="${OUTPUTDIR}/$1"
dir=`dirname ${output}`
test -d ${dir} || mkdir -p ${dir}

doccat $input > $output

こんな感じでよいのではないかと思います。
各コマンドは GNU 拡張のオプションを使っているので、UNIX によっては
対応するオプションがないかもしれません。
また、シェルスクリプト自体はテストしていませんので、致命的なバグが
あるかもしれませんので、実行前にはご自身で中身の確認をしてください。

doccat 以外の方は、タイプごとに変換するスクリプトを分けて、タイプごと
に find するという方法で大丈夫でしょう。

NMZ.field.uri の変換は、sed でやればよいかと思います。このため、
最初のスクリプトは

#!/bin/sh
cd /org
find . -type f -iregex ".*\.\(pdf\|doc\|xls\)" -exec /path/conv.sh {} \;
次に mknmz を実行
sed で NMZ.field.uri の置換
rfnmz の実行

という感じになるでしょうか。(find は -mtime 付きの方が良いかもしれ
ません。)
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns @ asahi-net.or.jp
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E




Namazu-users-ja メーリングリストの案内