- PR -

スクリプトでwine

1
投稿者投稿内容
Folly
常連さん
会議室デビュー日: 2003/09/12
投稿数: 22
投稿日時: 2008-10-30 17:33
wineを使ってxdoc2txtというテキスト抽出プログラムをdebian上で使おうとしています。

Hyper Estraierのフィルタとして作成したスクリプトファイルは単独で使用すると意図した結果の出力をしてくれます。
ところがHyper Estraierのestcmdコマンドから呼び出すと全く機能せず困っております。

問題の切り分けとして問題のスクリプトファイルを一時的にxlhtmlで動かす様に書き換えると問題なくテキスト出力がなされてインデックス化されていますので、
おそらくwine xdoc2txt.exe <option> <file>という部分の組み合わせ方が問題ではないかと思っていますが、四苦八苦しています。
お助けください。

#! /bin/bash
PATH="$PATH:/usr/local/sbin:/usr/local/lib/wine:/usr/X11R6/bin:${HOME}/.wine/drive_c/windows/system32:${HOME}/.wine" ; export PATH
LANG="ja_JP.UTF-8" ; export LANG
LC_CTYPE="ja_JP.UTF-8" ; export LC_CTYPE
LC_MONETARY="ja_JP.UTF-8" ; export LC_MONETARY
LC_NUMERIC="ja_JP.UTF-8" ; export LC_NUMERIC
LC_COLLATE="ja_JP.UTF-8" ; export LC_COLLATE
LC_TIME="ja_JP.UTF-8" ; export LC_TIME
WINEPREFIX="${HOME}/.wine" ; export WINEPREFIX
progname="estfxdoc2txt"
WINE="/usr/local/bin/wine"
XDOC2TXT="/usr/local/sbin/xdoc2txt.exe"
ICONV="/usr/local/bin/iconv"
SED="/bin/sed"

# check arguments
if [ $# -lt 1 ]
then
printf '%s: usage: %s infile [outfile]\n' "$progname" "$progname" 1>&2
exit 1
fi
infile="$1"
outfile="$2"

if [ -n "$ESTORIGFILE" ] && [ -f "$ESTORIGFILE" ]
then
infile="$ESTORIGFILE"
fi

# check the input
if [ "!" -f "$infile" ]
then
printf '%s: %s: no such file\n' "$progname" "$infile" 1>&2
exit 1
fi

# initialize the output file
if [ -n "$outfile" ]
then
rm -f "$outfile"
fi

# function to output
output(){
if [ -n "$outfile" ]
then
cat >> "$outfile"
else
cat
fi
}

# output the result
#$WINE $XDOC2TXT -p "$infile" 2> "/dev/null" | $ICONV -f CP932 -t UTF-8 -c | $SED -e 's/^\n//g' -e 's/^M//g' | output
#$WINE $XDOC2TXT -n -r=0 -o=1 "$infile" 2> "/dev/null" | $ICONV -f CP932 -t UTF-8 -c | $SED -e 's/ //g' -e 's/^M//g' | cat > $outfile
#上記の様にしたかったのですが、検証用にしています。

$WINE $XDOC2TXT -n -r=0 -o=1 \"$infile\" | output

# exit normally
exit 0

このスクリプトを次のコマンドを記入したスクリプトファイルで呼んでいます。
estcmd gather -il ja -fx ".xls" "T@estfxdoc2txt" -fz -sd -cm -um -pc UTF-8 -cs 400 -lf 64 $index $target
暫定的にxlsのみを対象としています。

よろしくお願いいたします。
1

スキルアップ/キャリアアップ(JOB@IT)